前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript中null和undefined的比较和区别

JavaScript中null和undefined的比较和区别

作者头像
林老师带你学编程
发布2018-01-03 17:20:47
1.1K0
发布2018-01-03 17:20:47
举报
文章被收录于专栏:强仔仔强仔仔

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

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

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

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

下面看一下例子:

代码语言:javascript
复制
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"));

运行结果为:

代码语言:javascript
复制
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的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年07月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档