博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript中对null和undefined的理解
阅读量:5140 次
发布时间:2019-06-13

本文共 896 字,大约阅读时间需要 2 分钟。

前沿:

  今天工作中遇到了监视一个变量是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。

 (图片看不清可以右键在新的连接中打开)

 

转载于:https://www.cnblogs.com/xiujun/p/10651277.html

你可能感兴趣的文章
springMVC相关—文件上传
查看>>
由Oracle 11g SYSAUX 和 SYSTEM 表空间回收引发的联想
查看>>
[nRF51822] 9、基础实验代码解析大全 · 实验12 - ADC
查看>>
三十三、www服务apache软件
查看>>
利用jQuery获取鼠标当前的坐标
查看>>
POJ 3348 Cows | 凸包——童年的回忆(误)
查看>>
gevent协程
查看>>
U盘启动-系统预维护
查看>>
PyCharm中的Console自动换行
查看>>
Apache启动是出现the requested operation has failed
查看>>
页面后退清空缓存
查看>>
牛客(8)跳台阶
查看>>
oc-UITextView占位文字及占位文字颜色扩展(可在xib中直接使用)
查看>>
转载:《TypeScript 中文入门教程》 8、函数
查看>>
流控制、FlowControl
查看>>
【Javascript】IE8兼容 背景图片与a标签的onclick事件
查看>>
asp.net 发送邮件代码
查看>>
commons-lang包中我们常用的类的作用
查看>>
会计基础模拟试题三
查看>>
APIO2018酱油记
查看>>