码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中对null和undefined的理解

时间:2019-04-03 20:36:40      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:错误   技术   size   参数   编码   没有   inf   png   if判断   

前沿:

  今天工作中遇到了监视一个变量是undefined,结果判断写的是==null 返回值是true,这个结果引起了我对这两个东西的兴趣。

查询了相关的文章理解并测试了。发现有以下特点:

1.广义上来讲JavaScript中null和undefined是相等的,即null==undefined 返回值是true

2.狭义上来讲JavaScript中null和undefined是不相等的,即null===undefined 返回值是false

技术图片

3.值得说的是null和undefined在if判断中都是被认定为false,执行else分支的内容

 

分析:

为什么null===undefined是false呢?我们知道===表示绝对相等,也就是我们常说的值和类型都相等,这个理论告诉我们null和undefined的类型应该就是不同了

技术图片

typeof(a)是一个object, typeof(b)是一个undefined,所以说两者的类型时不一样的,这也就是null和undefined不是绝对相等的(这里类型问题大家可以查资料深入了解)

typeof(a)是一个object其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来。在今天我们可以解释为,null即是一个不存在的对象的占位符,但是在实际编码时还是要注意这一特性。

我们继续关注下面的结果就可以理解当初设计null和undefined的用意了

技术图片

目前JavaScript对null和undefined转换成number的结果居然这样(没想到吧)

最后想说的是js中出现undefined的情景还是较多的:

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

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

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

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

JavaScript中对null和undefined的理解

标签:错误   技术   size   参数   编码   没有   inf   png   if判断   

原文地址:https://www.cnblogs.com/xiujun/p/10651277.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!