JavaScript中null和undefined的比较和区别

在JavaScript中很经常就会出现nullundefined这几种结果,今天就详细的介绍一下null和undefined的定义和区别。

null根据其名字就可以大致看出来意思,就是为空。在js中如果变量这么定义的话var flag=null,这个时候flag就是个空值,将其打印出来也是null。

而undefined则表示未定义,例如:var flag;然后将flag打印出来,此时flag的结果就是undefined。

所以二者之间的区别就是一个是已经定义可是却是为空的,而另一种则是未定义是何种类似的。

下面看一下例子:

var flag1;
		var flag2=null;
		console.log("flag1:"+flag1);
		console.log("flag2:"+flag2);
		console.log("flag1==null?"+(flag1==null));
		console.log("flag1==undefined?"+(flag2==undefined));
		//”==”与”===”是不同的,一个是判断值是否相等,一个是判断值及类型是否完全相等。
		console.log("flag1==flag2?"+(flag1==flag2));
		console.log("flag1===flag2?"+(flag1===flag2));
		console.log("flag1==flag2?"+(flag2=="null"));
		console.log("flag1==flag2?"+(flag1=="undefined"));

运行结果为:

flag1:undefined
flag2:null
flag1==null?true
flag1==undefined?true
flag1==flag2?true
flag1===flag2?false
flag1==flag2?false
flag1==flag2?false

这里需要解释一下的是==于===的区别:

1、对于string,number等基础类型,==和===是有区别的

1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等

2)同类型比较,直接进行“值”比较,两者结果一样

2、对于Array,Object等高级类型,==和===是没有区别的

进行“指针地址”比较

3、基础类型与高级类型,==和===是有区别的

1)对于==,将高级转化为基础类型,进行“值”比较

2)因为类型不同,===结果为false

总结起来就是:”==”与”===”是不同的,一个是判断值是否相等,一个是判断值及类型是否完全相等。

这里需要注意的是:null==undefined结果是true的,null===undefined结果是false的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

Knapsack problem algorithms for my real-life carry-on knapsack

I'm a nomad and live out of one carry-on bag. This means that the total weight o...

1192
来自专栏WOLFRAM

向日葵中的数学之美

1933
来自专栏Petrichor的专栏

Dataset 列表:机器学习研究

In computer vision, face images have been used extensively to develop face recog...

1831
来自专栏跟着阿笨一起玩NET

c# 使用timer定时器操作,上次定时到了以后,下次还未执行完怎么处理

------解决方案-------------------------------------------------------- 开始的时候,禁用定时器,你...

3041
来自专栏专知

2018年SCI期刊最新影响因子排行,最高244,人工智能TPAMI9.455

2018年6月26日,最新的SCI影响因子正式发布,涵盖1万2千篇期刊。CA-Cancer J Clin 依然拔得头筹,其影响因子今年再创新高,达244.585...

1482
来自专栏MelonTeam专栏

Bitmap 源码阅读笔记

导语: Android 系统上的图片的处理,跟Bitmap 这个类脱不了关系,我们有必要去深入阅读里面的源码,以便在工作中能更好的处理Bitmap相关的问题...

2608
来自专栏前端儿

Web 前端颜色值--字体--使用,整理整理

颜色值 CSS 颜色使用组合了红绿蓝颜色值 (RGB) 的十六进制 (hex) 表示法进行定义。对光源进行设置的最低值可以是 0(十六进制 00)。最高值是 2...

2762
来自专栏余生开发

echarts太阳分布图-饼图来回穿梭

var dom = document.getElementById("container");

1442
来自专栏一个会写诗的程序员的博客

java.base.jmod

/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/jmods$ jmod list java....

1182
来自专栏增长技术

App Guide相关

##TourGuide https://github.com/worker8/TourGuide

822

扫码关注云+社区