JavaScript中null和undefined的区别

null:

1)是只有一个值(即null)的特殊类型,表示一个空对象引用,我们可以把它理解为一个不存在的对象的占位符。

2)使用typedef检测null返回的是object。(typeof null    // object)

3)null转为数值时是0(5+null-------->5)

典型用法:

1)作为函数的参数,表示该函数的参数不是对象。

2)作为对象原型链的终点。

  Object.getPrototypeOf(Object.prototype)
  // null

undefined:

1)是一个没有设置值的变量。

2)使用typedef测试一个没有值的变量会返回undefined。(typeof undefined   // undefined)

3)undefined转化为数值时是NaN(5+undefined------------>NaN)

典型用法:

1)变量被声明了,但是没有被赋值时,就等于undefined。

  var i;
  i // undefined

2)调用函数时,应该提供的参数没有提供,该参数等于undefined。

function f(x){console.log(x)}f() // undefined

3)对象没有赋值的属性,该属性的值为undefined。

var o = new Object();
o.p // undefined

4)函数没有返回值时,默认返回undefined。

var x = f();
x // undefined

 

总结:

1)null表示一个值被定义了,定义为“空值”,undefined表示根本不存在定义。

2)null表示“没有对象”,即此处不应该有值,undefined表示“缺少值”,此处应该有一个值,但是还没有定义。

posted @ 2021-02-01 22:10  一只蒟蒻也有大佬梦  阅读(487)  评论(0编辑  收藏  举报