3.4 数据类型
ECMAScript 有 6 种简单数据类型(也称为原始类型):
- Undefined
- Null
- Boolean
- Number
- String
- Symbol
还有一种复杂数据类型叫 Object(对象)。是一种无序名值对的集合。
3.4.1 typeof 操作符
因为 ECMAScript 的类型系统是松散的,所以需要一种手段来确定任意变量的数据类型。 typeof
操作符就是为此而生的。对一个值使用 typeof 操作符会返回下列字符串之一:
- "undefined" 表示值未定义
- "boolean" 表示值为布尔值
- "string" 表示值为字符串
- "number" 表示值为数值
- "object" 表示值为对象(而不是函数)或 null
- "function" 表示值为函数
- "symbol" 表示值为符号
注意 typeof 在某些情况下返回的结果可能会让人费解,但技术上讲还是正确的。比如,调用 typeof
null 返回的是 "object" 。这是因为特殊值 null 被认为是一个对空对象的引用。
3.4.2 Undefined 类型
Undefined 类型只有一个值,就是特殊值 undefined 。当使用 var 或 let 声明了变量但没有初始
化时,就相当于给变量赋予了 undefined 值。
3.4.3 Null 类型
Null 类型同样只有一个值,即特殊值 null 。逻辑上讲, null 值表示一个空对象指针,这也是给
typeof 传一个 null 会返回 "object" 的原因。
在定义将来要保存对象值的变量时,建议使用 null 来初始化,不要使用其他值。这样,只要检查
这个变量的值是不是 null 就可以知道这个变量是否在后来被重新赋予了一个对象的引用。
用等于操作符( == )比较 null 和 undefined 始终返回 true 。
网友评论