众所周知,JavaScript 中有七种内置类型:
- 空值(null)
- 未定义(undefined)
- 布尔值(boolean)
- 数字(number)
- 字符串(string)
- 对象(object)
- 符号(symbol)
可以通过 typeof
运算符来查看值的类型。但是,这七种类型和它们的字符串值并非一一对应
1 | typeof undefined === 'undefined'; // true |
事实上,对于 typeof null
的返回结果,是 object
。这是 JavaScript 设计以来的一个 bug 。单单只用 typeof
运算符来检测 null
值的类型并不适用,因此我们需要用符合条件来检测:
1 | var a = null; |