与许多语言一样,JavaScript 将对象表示为存储对象数据的内存位置的引用(指针)。当 JavaScript 创建时,null 被表示为一个不指向任何内存位置的特殊指针值(“空指针”)。后来引入 typeof 运算符时,它使用 JavaScript 引擎相同的内部机制来检查值的类型。由于 null 被表示为特殊类型的对象(空指针),因此 typeof 运算符为 null 返回“object”。这种行为虽然在技术上是一个错误,但尚未修复以保持 JavaScript 的向后兼容性。