typeof null 的结果是什么,为什么?

typeof null 的结果是 "object"

这是 JavaScript 中的一个历史遗留问题。在 JavaScript 最初的实现中,将 JavaScript 的值分为了几种类型,其中 null 被当作一个空对象指针。为了与其他对象类型区分开,typeof null 返回了 "object"

实际上,null 是一个表示空值的特殊值,它不是对象,也不是任何对象的实例。虽然 typeof null 返回了 "object",但这并不表示 null 是对象的一种类型。

由于这个历史遗留问题,判断一个值是否为 null 通常需要使用 value === null 进行比较,而不是依赖 typeof 运算符的结果。