JavaScript 中 undefined 与 null 的用法区别

大多数计算机语言,有且仅有一个表示“无”的值,比如:C 语言的 NULL,Java 语言的 null,Python 语言的 None,Ruby 语言的 nil。

但是在 JavaScript 中却同时存在 undefinednull,这主要是由于历史原因,感兴趣的可以查一下。

二者的主要用法区别如下:

  • undefined
    • 变量被声明了,但没有赋值时,就等于 undefined
    • 调用函数时,应该提供的参数没有提供,该参数等于 undefined
    • 对象没有赋值的属性,该属性的值为 undefined
    • 函数没有返回值时,默认返回 undefined
  • null
    • 作为函数的参数,表示该函数的参数不是对象。
    • 作为对象原型链的终点。

⚠️ 注意:在 JavaScript 中 undefined 是一个全局变量,而不是关键字!

  1. 为了避免无意中被篡改,建议使用 void 0 来获取 undefined 值。
  2. 在比较时,建议使用 if (typeof var1 === 'undefined') {}