JS一千问(6):null和undefined的区别在哪里?

JavaScript有两个不同的空值,nullundefined

undefined

undefined的意思是,变量的值没有定义, typeof undefined也是”undefined”。undefined只是一个值,并不是一个常量或关键字。

出现undefined的情况:

  1. 声明未赋值的变量。如:var a;
  2. 函数由于缺少return语句而隐式返回。如:function fun() {}; var a = fun();
  3. 显式返回但不包含任何内容的语句。如:function fun() { return; }; var a = fun();
  4. 查找对象中不存在的属性。
  5. 未传递的函数参数。
  6. 任何被设置为undefined的值。
  7. 任何void形式的表达式。
  8. 全局变量undefined。window.undefined。

null

null表示空的或不存在的值,程序员用它来表示“没有值”。

null不是一个对象,它是一个基本值,你可以将null赋给任何变量。有时人们错误地认为它是一个对象,因为typeof null返回“object”,事实上并不能给它添加属性。

typeof null = ‘object’其实是个bug,第一个JavaScript版本遗留下来的问题,具体请参阅:https://2ality.com/2013/10/typeof-null.html)

顺便说一下:

null == undefined // true
null === undefined // false

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注