null和undefined的区别

发布时间 2023-06-12 13:39:02作者: kitebear

在 JavaScript 中,null 和 undefined 都表示空值,但它们有着不同的含义和用途。

undefined 表示不存在、未定义或者缺失。它是一个原始数据类型,在以下情况下会出现:

  • 变量被声明但没有赋值
  • 访问对象属性不存在或未定义
  • 函数参数未传递

而 null 表示一个对象为空或者不存在,它也是一个原始数据类型。null 在下列情况下出现:

  • 把定义了的变量赋值为 null
  • 用对象获取不到值时返回 null
  • 当函数要返回对象但是暂时没有可以返回的对象时,可以返回 null 作为哨兵值。

总结区别:

  • undefined 表示未定义或未初始的值, null 表示一个空对象指针。
  • undefined 是 JavaScript 语言中的关键字,而 null 是 JavaScript 语言中的特殊关键字。
  • 对于声明但是未赋值的变量,默认的值为 undefined,但是 null 需要进行显式赋值。
  • 在使用 == 进行比较时,它们会相互转换成 Boolean 类型值,undefined 转换为 falsenull 转换为 false
  • 在使用 === 进行比较时,除了两者的值相等,它们与其它类型值永远不相等,因为它们类型不同。