快速弄清JavaScript中undefined和null的区别

ES6的7大数据类型里面有这俩玩意:undefined和null,让接触不深的学习者常常产生混淆,这俩玩意的区别在哪呢?

字面意思上来看,undefined是未(被我们)阐明的,未说明的,null则意思为空。高考语文100出头的我认为就是一个声明了但是没定义里面的内容,一个就单纯的是啥也没有,空空如也。

var x1;
var x2 = null;
console.log(x1);//undefined
console.log(x2);//null

我们在控制台内查看JS的空容器也会发现里面的元素是以null来说明,而不是undefined。

那么我们如何在程序层面判断这俩呢?

先来看undefined:

1 var exp = undefined;
2 if (typeof(exp) == "undefined")
3 {
4     alert("undefined");
5 }

这应该是我们最常用的办法了,为什么不能让二者直接判断而是要套上一个typeof呢?这里有一点我们必须要弄清楚,ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。所以必须要套上一个typeof或者用===来表示才可以。

至于null,那麻烦更大了,如果你单纯的使用==并且前置!符号来表示判断的话,ECMAScript不光会混淆undefined了,还混淆了0!!!

var exp = null; 
if (!exp && typeof(exp) != ”undefined” && exp!=0) 
{
  alert(“
null”);
}

所以我们还是简单点吧,二者都使用===直接判断数据类型比较稳

 var exp = null;
if(exp === null){
    console.log("null");
}

猜你喜欢

转载自www.cnblogs.com/qq965921539/p/11211501.html
今日推荐