JavaScript中的null和undefined的理解区分

为什么null的类型是object?

typeof(null)
//返回object。

null的类型是object,这是由于历史原因造成的。1995年的 JavaScript 语言第一版,只设计了五种数据类型(对象、整数、浮点数、字符串和布尔值),没考虑null,只把它当作object的一种特殊值。后来null独立出来,作为一种单独的数据类型,为了兼容以前的代码,typeof null返回object就没法改变了。


null和undefined的关系
在if语句中,它们都会被自动转为false,相等运算符(==)甚至直接报告两者相等。

if (!undefined) {
    
    
  console.log('undefined is false');
}
// undefined is false

if (!null) {
    
    
  console.log('null is false');
}
// null is false

undefined == null
// true

null和undefined的区别

Number(null) // 0
5 + null // 5

Number(undefined) // NaN
5 + undefined // NaN

区别:
null是一个表示“空”的对象,转为数值时为0
undefined是一个表示"此处无定义"的原始值,转为数值时为NaN

在代码书写中,推荐 待使用变量声明 为 var a =null;

      var a=null;
      var b;
      console.log(a);//null
      console.log(b);//undefined
      console.log(c);//报错

进而使得其对于是否进行声明有更好的区分。

猜你喜欢

转载自blog.csdn.net/weixin_45664402/article/details/111316758