null和undefined有什么区别

3 阅读1分钟

首先 Undefined 和 Null 都是基本数据类型,这两个基本数据类型分别都只有一个值,就是 undefined 和 null。

undefined 代表的含义是未定义,null 代表的含义是空对象。一般变量声明了但还没有定义的时候会返回 undefined,null主要用于赋值给一些可能会返回对象的变量,作为初始化。

undefined 在 JavaScript 中不是一个保留字,这意味着可以使用 undefined 来作为一个变量名,但是这样的做法是非常危险的,它会影响对 undefined 值的判断。我们可以通过一些方法获得安全的 undefined 值,比如说 void 0。

当对这两种类型使用 typeof 进行判断时,Null 类型化会返回 “object”,这是一个历史遗留的问题。当使用双等号对两种类型的值进行比较时会返回 true,使用三个等号时会返回 false。

极简背诵

  1. 语义:undefined 是系统默认未赋值;null 是人为手动置空。
  2. 类型:typeof undefined 为自身类型,null 判定为 object(历史 bug)。
  3. 相等:两者 == 相等,=== 不相等。
  4. 运算:null 当作 0,undefined 结果为 NaN。
  5. 用法:未初始化用 undefined;清空引用、空对象用 null