在JavaScript中,null和undefined都是表示“空”的特殊值,它们的用
法和含义略有不同。
undefined表示未定义或者不存在,通常在以下情况下出现:
- 变量被声明了,但是没有被赋值。
- 对象没有赋值的属性。
- 函数没有返回值时,默认返回undefined。
null表示空值,即某个变量的值为空。在以下情况下常常使用null:
- 作为函数的参数,表示该函数的参数不是对象。
- 作为对象原型链的终点。
- 表示对象不存在或已被销毁。
两者的区别在于它们的类型不同,undefined的类型为Undefined,而null的类型为Object。此外,在进行比较操作时,它们也有所不同:undefined和null相互比较时,结果为true。但是和其他值比较时,undefined和null分别都和布尔型的false和null相等,但和数字类型比较时,它们分别变成了NaN和0。