被写烂了的JS数据类型

栏目: JavaScript · 发布时间: 6年前

内容简介:the part that is good is not original, and the part that is original is not good.--Samual johnsonJS之父曾引用英国诗人的这句话来评价其创造的JavaScript语言。信息量挺大,详见JS诞生时的历史。众所周知,JS有七种数据类型: number string null undefined object boolean symbol,其中symbol目前不很常用。“数据类型有什么好讲的,直接用不就是了?”,如果

the part that is good is not original, and the part that is original is not good.--Samual johnson

JS之父曾引用英国诗人的这句话来评价其创造的JavaScript语言。信息量挺大,详见JS诞生时的历史。

众所周知,JS有七种数据类型: number string null undefined object boolean symbol,其中symbol目前不很常用。“数据类型有什么好讲的,直接用不就是了?”,如果你对一个人足够感兴趣,我想你会去想了解他的前半生的。

被写烂了的JS数据类型

由于Brendan创造JS的时候很大程度上借鉴了 Java 的数据类型,所以这里我们来比较一下两者的数据类型。可以明显看出,关于数值的各个类型被brendan统一成number,只要是数值相关的,那在js中就是number类型,不管形式,不管大小(其实管,后文会提到)。char在js中对应了string。为纪念伟大的乔治·布尔先生,brendan没有对boolean进行任何改动(瞎猜的)。引用类型就有趣了,万物归于object。

为什么JS可以一个number解决所有的数值类型,或者说一个变量就可以任意类型的数据。答案在你开始学习JavaScript的那几段话中, “JavaScript是一种动态类型、弱类型...的语言” 。动态类型意味着在声明一个变量之后,可以存储不同类型的变量。也就是说在JS中声明一个变量a,他的初始值是13, var a= 13 , 在这语句之后,你仍然可以再写一个这样的语句 a = '13.333' 来改变a的值且不会报错,甚至可以写 a = 'name is sam'

不扒历史钻字眼了,探索和收敛的度需要控制好。下面逐一介绍每个数据类型。

number

  • JavaScript内部,所有数字都是以64位浮点数形式存储,整数也是。
  • JavaScript能够表示的数值范围是2^-1023到2^1024,超出的范围的数无法表示。
  • 溢出能够表示的范围会返回Infinity(正数)或者0(负数)
  • 数值可以有多种表示方法,字面形式和科学计数法。
  • 字面形式:35        0xFF(十六进制)     123e。
  • 除以下情况外都采用字面形式表示,小数点前数字多于21位或后的零多于5个。
  • 有四种进制来表示字面量:十进制 十六进制 八进制 二进制。
  • 属于number类型的特殊数值:-0 +0 NaN 正负Infinity。
  • NaN参与的绝大部分运算都会得到诸如NaN false 这样的答案。
  • 数值相关的全局方法 parseInt() parseFloat() isNaN() isFinite()

string

  • 字符串默认只能写在一行内,分成多行将会报错,如果必须,要在每一行的结尾使用反斜杆,但反斜杆后不能有诸如空格的其他字符。
  • 连接运算符 + 可以连接多个单行字符串,将长字符串拆成多行书写。
  • length属性返回字符串长度。
  • 由于历史原因,JavaScript使用Unicode字符集。
  • btoa()将任意值专为Base64编码,atob()将base64编码专为原来的值。

null & undefined

tyepof null //object 

Boolean

  • 除了以下值: undefined null false 0 NaN "" 或者' '其他值都视为true。
  • 空数组和空对象都是true。

object

(Object.keys(obj)).length
delete obj.p
'p' in obj

学到的东西不够多,就无法把这些点恰如其分的串联起来。:(


以上所述就是小编给大家介绍的《被写烂了的JS数据类型》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++ Primer Plus

C++ Primer Plus

Stephen Prata / Addison Wesley / 2011-10-18 / GBP 39.99

C++ Primer Plus, Sixth Edition New C++11 Coverage C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible an......一起来看看 《C++ Primer Plus》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具