JavaScript 语言规定了 7 种语言类型
-
Undefined
-
Null
-
Boolean
-
String
-
Number
-
Object
-
Symbol
Symbol 是 ES6 中引入的新类型
- Undefined
问题:为什么有些规范要求使用 void 0 代替 undefined
解决:void是JavaScript的一个操作符,而void 0会返回undefined
console.log( void 0 === undefined) // true
MDN上对于Undefined的定义:undefined是全局对象的一个属性,也就是说,它是全局作用域中的一个变量,undefined的最初值就是原始数据类型undefined。
ES5之后的标准中,规定了全局变量下的undefined值为只读,不可改写的,但是局部变量中依然可以对之进行改写。
所以好处一是防止被重写,二是节省字符
-
Boolean
true /false -
String
最大长度:2^53 - 1 (字符串的UTF16编码长度)
-
Number
- NAN
- infinity 无穷大
- -infinity 负无穷大
-
Symbol
-
Object
对象的定义是属性的集合
属性分为数据属性和访问器属性