1、最新的 ECMAScript 标准定义了 8 种数据类型:包括七种基本数据类型和一种引用类型:
| 类型 | 说明 |
|---|---|
| Boolean | 有 2 个值分别是:true 和 false。 |
| null | 一个表明 null 值的特殊关键字。 |
| undefined | 和 null 一样是一个特殊的关键字 undefined 表示变量未赋值时的属性。 |
| Number | 整数或浮点数,例如: 42 或者 3.14159。 |
| BigInt | 任意精度的整数,可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制。 |
| String | 字符串是一串表示文本值的字符序列,例如:"Howdy"。 |
| Symbol | 一种实例是唯一且不可改变的数据类型。 |
| Object | 对象 |
2、使用Boolean函数转换为false的8种值。
为什么如此重要,因为 if 语句会调用Boolean转换函数将其转化为一个布尔值。if是最常用的语句,不熟悉转换规则基本上写不好代码。
| 类型 | 结果 |
|---|---|
| Boolean(+0) | false |
| Boolean(-0) | false |
| Boolean(0n) | false |
| Boolean(NaN) | false |
| Boolean(null) | false |
| Boolean(undefined) | false |
| Boolean("") | false |
| Boolean(false) | false |
document.all 也为false。 当将非标准属性 document.all 用作此构造函数的参数时,结果是值为 false 的布尔对象。此属性是旧的、非标准的属性,不应使用。
3、使用 typeof 操作符返回的8种数据类型:
| 类型 | 结果 |
|---|---|
| Undefined | "undefined" |
| Null | "object" |
| Boolean | "boolean" |
| Number | "number" |
| Bigint | "bigint" |
| String | "string" |
| Symbol | "symbol" |
| Function | "function" |
其他任何对象均返回 "object"
在 JavaScript 最初的实现中,JavaScript 中的值是由一个表示类型的标签和实际数据值表示的。对象的类型标签是 0。由于 null 代表的是空指针(大多数平台下值为 0x00),因此,null 的类型标签是 0,typeof null 也因此返回 "object"。