JS中undefined和null的区别
创始人
2024-05-30 03:28:31
0

● JavaScript 真是一个特殊的语言, 其他语言都只有一个表示 “无” 的值, 比如 Java 语言用的是 null, C 语言用的是 NULL, Python 语言用的是 None, Ruby 语言用的是 nil. 只有 JS 里面表示 “空” 的有两个, 一个是 undefined, 一个是 null

● 很多小朋友在刚开始学习的时候, 都会有一个疑问, 就是 undefined 和 null 二者之间有什么区别呢 ? 我什么时候该用什么呢 ?

● 接下来, 咱们就来好好聊一聊

JS的基本数据类型
● 在 JS 内, 有几个基本数据类型

● ES5

○ Number 数值○ String 字符串○ Boolean 布尔○ Undefined 空○ Null 空

● ES6

○ Symbel 唯一值

● undefined 和 null 其实就是 JS 中的基本数据类型, 空类型

○ 从这个角度来看, 他们两个是一样的, 都表示 空 的意思○ 并且在进行数据类型比较的时候, 某些情况下也是一样的
console.log(undefined == null) // true

两者的区别
● 两者的区别还是在于含义

● 之前我们说过, 所有的数据在计算机都是以二进制形式存储的

● 那么这两个数据也是会按照二进制形式存储的

○ undefined 因为表示的是 "没有", 所以没得转换, 啥也没有○ null 因为表示的是 "空", 其实是有内容, 只不过有一个空内容, 存储的是 0000 0000 ...

● 那么反馈到我们的代码内

○ undefined 就是没有值, 或者说未被赋值○ null 就是有值, 有一个空值, 一般会被当做这里有一个空对象, 也叫作空指针

● 举个例子 : 咱们以数字为例
在这里插入图片描述
这就是有一个具体的数字, 100 200 什么的

在这里插入图片描述
这就是 0, 用完了, 没有了

在这里插入图片描述
这就是 null, 有一个空架子, 其他的什么都没有

在这里插入图片描述
这就是 undefined, 连个架子都没有
●根据上面的例子
○undefined, 你什么都不需要做, 只要什么也不赋值就是 undefined
○null, 需要你赋值, 直接赋值为一个 null, 也就是你要安装一个空架子

两者对比
1.数据类型不同, 但是值相同
○两个数据分别属于 Undefined 类型和 Null 类型
○但是表示的值都是空
○所以在比较的时候, 我们要注意

console.log(undefined == null) // true, 不涉及数据类型比较
console.log(undefined === null) // false, 涉及数据类型比较

2.数据类型转换成为数值类型的时候结果不一样
○ null 表示空, 存储的时候也是一大堆 0, 所以转换为数值是 0
○undefined 表示没有, 什么都没有内容转换为数值以后是 NaN

console.log(Number(null)) // 0
console.log(Number(undefined)) // NaN

3.使用场景不同
●null
○在我们需要一个空值或者置空变量的时候手动赋值
○原型链的终点位置, 也就是 Object.prototype.proto 是 null
●undefined
○在变量声明未赋值的时候就是 undefined
○函数只有形参没有实参的时候, 这个形参的值也是 undefined
○如果一个函数没有设置返回值, 那么这个函数的返回值也是 undefined
总结
●总之, 我们就记住一个原则
○当你什么也没有做过的时候, 那么就是 undefined
○只有你想白干活的时候, 那么你就手动给他写成 null 就好了

相关内容

热门资讯

s24evmonexe-S24... 嘿,你有没有试过那种感觉,就像电脑里的一个小程序,突然成了你心跳的加速器?S24EVMON.EXE,...
android基本组件-探索 ... 哎呀,说到Android的小家伙们,真是让人又爱又恨!每次打开手机,这些小家伙就在背后默默地工作,让...
克罗恩病护理诊断及护理措施-克... 哎呀,说到克罗恩病,这可是个让人头疼的小妖精。我得这病已经好几年了,每天都在和它斗智斗勇。今天,我得...
身份证号码大全及名字-身份证号... 哇塞,今天我要和大家爆一个大料,关于那些身份证号码和名字的秘密,简直是让人目瞪口呆!你以为身份证号码...
彩生活协同oa系统2.0-彩生... 大家好!今天我要来聊聊我们生活中的小帮手——彩生活协同OA系统2.0。这个系统真是太棒了,它不仅仅是...
twrp recovery怎么... 哎呀,说到TWRPRecovery,这可不是一般的玩意儿!如果你是个爱折腾手机的小能手,那你肯定得知...
急性阑尾炎术后的心理护理-急性... 哎呀,说到这急性阑尾炎手术后的日子,真是让人心疼又心累啊!手术刀一划,不仅切开了肚子,连带着把心情也...
gps相片转谷歌地球-首次将 ... 哎呀,你们知道吗?当我第一次尝试把我的GPS相片转到谷歌地球上时,我的心情简直不能更激动了!就像是小...
rallycross-拉力越野... 嗨,各位赛车迷们!今天咱们聊聊那个让人心跳加速、热血沸腾的赛事——拉力越野赛(Rallycross)...
朝阳市中心医院电话:救命稻草还... 哎呀,说到这个朝阳市中心医院电话,我可是有说不完的故事啊!每次一想到要拨打那个号码,心里就五味杂陈。...
免费图书管理系统百度云-免费图... 哎呀,说到这个免费图书管理系统在百度云上,我真的是激动得不行!你知道吗,作为一个书虫,家里的书多得跟...
ecshop模板家-ECSHO... 大家好,我是一个热爱网上购物的小店主,今天我要和大家聊聊我的“ECSHOP模板家”的奇妙冒险。ECS...
硬盘坏了,d盘消失了-电脑 D... 哎呀,真是气死我了!今天一打开电脑,准备追个剧呢,结果发现我的D盘不见了!那个装满了我多年珍藏的D盘...
2024r2联网激活-2024... 哎呀,说到这个2024R2的联网激活,我简直要激动得跳起来!这可不是一般的激活过程,简直就像是一场刺...
警惕!牛犇病毒肆虐网络,如何防... 哎呀,说到这个“牛犇病毒”,真是让人头疼啊!这玩意儿最近在网络上疯传,简直像是打开了潘多拉的盒子,搞...
戴尔台式机系统重装-戴尔台式机... 哎,最近我的戴尔台式机简直成了电影里的慢动作大师,点个图标能等我喝完一杯咖啡!这速度,简直比乌龟还慢...
达思数据恢复软件如何使用-达思... 大家好,我是一名普通的数据维护爱好者,今天我要跟大家聊聊一个超级神奇的工具——达思数据恢复软件!这东...
急性肺炎怎么治疗-急性肺炎不用... 哎呀,急性肺炎这事儿,真是让人心急火燎的!但别慌,我来给你支支招。首先啊,得了急性肺炎,最重要的是去...
道路绿化设计方案-城市道路绿化... 在这个快节奏的城市生活中,我们常常忽略了那些默默陪伴我们的绿色伙伴——道路两旁的绿化带。今天,我想和...
数组全部初始化为0-电脑数组一... 哎呀,天哪!今天早上打开电脑,发现我的数组全变成0了!这是怎么回事啊?昨天还好好的,怎么一觉醒来就全...