Javascript的NULL

变量就是存储一个值的位置。 null就是表示没有东西。 它不是一个准确的值。 意思是那个存储位置没有保存任何东西(但是null自身却是一个特殊类型的值)。

typeof null是什么?

typeof null // "object"

null值是技术性原生的, 如"object" 或 "number"是原生的。这就意味着null的类型也是null。无论如何,这是JavaScript首先要定义的。

为什么在JavaScript里面将null看为一个对象?

实际上,null不是一个对象,它是一个原生值。例如,你不能给它添加属性。有时候,人会错误的将它看为一个对象,因为typeof null 返回"object"。

这是JavaScript的设计错误,目前还没有修正(ECMAScript 6或许改变)。它应该被示为null类型,而不是object类型,或者非对象类型。删除一个真实对象的时候,有必要做一个额外的检查(一般会忘掉),这是导致一些bug的源头。

原文链接