数据类型
Javascript一共有七种数据类型,分别是
- Undefined
- Null
- Number
- String
- Boolean
- Symbol
- Object
Undefined 和 Null
是否被定义
Null 和 Undefined 都表示给已经声明的变量赋的值,Null 表示被定义为变量的值为空,Undefined 表示变量的值没有被赋予。
如何被赋值
一般情况下变量的null值都是程序员手动设置的,javascript永远不会主动给变量赋值null;而如果一个变量被声明之后,没有被赋值的话,javascript会使他的默认值为undefined值。而且编译者一般很少会给变量赋值undefined,这样的话所有值为undefined的变量就都是未被赋值的状态。除此之外当函数没有返回一个值的时候,也会默认返回undefined。
typeof
Null类型就只有null一个值,Undefined类型也是只有undefined一个值,但是当我们使用typeof对其进行运算的时候,null却是object,而undefined仍然是undefined。
如何获取
因为undefined不是javascript语言的关键字,所以当获取undefined值的时候,最好使用void 0,以防无意中被篡改;但是null是关键字,所以在获取null值的时候可以直接使用null获取。
Number
浮点
javascript关于双精度浮点规则的处理,所以有一个著名的设计失误案例就是 0.1 + 0.2 == 0.3 为false。
个案
除了普通的数字,Number类型还包括 NaN (Not a Number)和正负无穷大,在除法运算中,负无穷大会造成不必要的麻烦,而检验其的方式就是使用1/x的结果是infinity还是- infinity。
String
String直译为字符串,但其实是由UTF16编码组成的码点。而且字符串一旦构造是无法用任何方式改变的。
Boolean
Boolean类型的值包括true和false。
Symbol
symbol值是具有唯一性的标识符,通常作为object属性的key。一般是向Symbol函数传入“描述”,然后生成symbol值,即使描述相同,symbol值也具有唯一性。通常情况下Symbol提供了访问对象的唯一性。
Object
Object的定义为属性的集合,属性包括数据属性和访问器属性,都是以键值对(key-value)的形式出现,其中key就包括字符串和symbol。
Refrence: www.scaler.com/topics/java… developer.mozilla.org/en-US/docs/… www.freecodecamp.org/news/how-di… www.programiz.com/javascript/… time.geekbang.org/column/arti…