typeof null
的结果是 "object"
。这是一个 JavaScript 的古老错误,源于语言的早期实现。
原因
-
历史原因:
- 在 JavaScript 的早期版本中,
null
的内部表示被实现为一个空对象指针(即所有位都为0)。在typeof
操作符的实现中,空对象的类型被标记为"object"
,因此typeof null
也返回"object"
。
- 在 JavaScript 的早期版本中,
-
语言规范:
- 这个行为是 ECMAScript 规范的一部分,尽管这是一个已知的错误,但为了兼容性和避免破坏旧代码,JavaScript 继续保持这个行为。
示例
console.log(typeof null); // "object"