## null 和 undefined 的区别? 首先 `Undefined` 和 `Null` 都是基本数据类型,这两个基本数据类型分别都只有一个值,就是 `undefined` 和 `null`。 `undefined` 代表的含义是未定义,`null` 代表的含义是空对象。一般变量声明了但还没有定义的时候会返回 `undefined`,`null` 主要用于赋值给一些可能会返回对象的变量,作为初始化。 `undefined` 在 js 中不是一个保留字,这意味着我们可以使用 `undefined` 来作为一个变量名,这样的做法是非常危险的,它会影响我们对 `undefined` 值的判断。但是我们可以通过一些方法获得安全的 `undefined` 值,比如说 `void 0`。 当我们对两种类型使用 `typeof` 进行判断的时候,`Null` 类型化会返回 “`object`”,这是一个历史遗留的问题。当我们使用双等号对两种类型的值进行比较时会返回 `true`,使用三个等号时会返回 `false`。 #### 详细资料可以参考: * [《JavaScript 深入理解之 undefined 与 null》](http://cavszhouyou.top/JavaScript%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E4%B9%8Bundefined%E4%B8%8Enull.html)