(JavaScript)JavaScript中null和undefined的共同点以及区别

86 阅读1分钟

共同点

  • UndefinedNull 都是基本的数据类型,且只有一个值即undefinednull
  • 在条件表达式中都会被视为假值:在条件语句中,nullundefined 都被视为假值(Falsy)。这意味着它们在布尔上下文中被视为 false

区别

  • 数据类型的不同
    • undefined 代表的含义是未定义,表示未定义或未初始化的值。它通常用于表示变量在声明后但尚未赋值时的状态。
    • null 代表的含义是空对象,表示空值或缺失值。它通常用于表示一个变量应该是对象,但目前没有分配对象。

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

  • undefined不是JavaScript中的保留字,所以我们在使用的时候应该避免使用undefined 来作为一个变量名,这样的做法会影响对undefined值的判断,如果要安全的获取undefined的值,可以使用void 0
  var myVar = void 0; // myVar将被设置为 undefined 
  console.log(myVar); // 输出 undefined

在 JavaScript 中,void 运算符通常用于创建一个返回 undefined 的表达式。你可以使用 void 后跟任何表达式,它将始终返回 undefined

  • 类型判断的不同:当对这两种类型使用 typeof 进行判断时,Null 类型化会返回“object”,这是一个历史遗留的问题。当使用双等号对两种类型的值进行比较时会返回true,使用三个等号时会返回false (ps: 如果想了解关于类型判断的方法可以看我上一篇博客)