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 就好了

相关内容

热门资讯

安卓手机渗透系统官网,官方揭秘... 你有没有发现,现在安卓手机简直无处不在?从街头巷尾的小贩到办公室的白领,几乎人手一部。而支撑这些手机...
鸿蒙系统怎么换安卓界面,体验全... 你是不是也对鸿蒙系统换上安卓界面这个话题感兴趣呢?毕竟,现在手机系统更新换代这么快,谁不想让自己的手...
安卓系统内存卡360,安卓系统... 你有没有发现,手机里的照片越来越多,游戏也越来越大,安卓系统的内存卡简直成了我们生活中不可或缺的好伙...
安卓13系统排行榜,热门机型及... 你知道吗?最近安卓系统界可是热闹非凡,各大手机厂商纷纷发布了自家的安卓13系统版本。这不,咱们就来聊...
安卓系统要几g内存,几G内存才... 你有没有想过,你的安卓手机到底需要多少内存才能顺畅运行呢?这可是个让人头疼的问题,因为内存大小直接关...
安卓系统打印log日志命令,A... 你有没有想过,当你使用安卓手机时,那些神秘的log日志其实就像是一部隐藏的侦探小说,记录着手机内部的...
安卓什么系统跟ios像,揭秘与... 你有没有发现,现在手机市场上,安卓系统和iOS系统就像是一对双胞胎,长得越来越像了?今天,就让我带你...
安卓9.0机顶盒系统,畅享视听... 你有没有发现,家里的安卓机顶盒最近是不是变得聪明多了?没错,这就是安卓9.0机顶盒系统的魅力所在。今...
安卓手机慢了重装系统,重拾流畅... 手机用久了是不是感觉越来越慢,打开应用都要等半天?别急,今天就来给你支个招——给安卓手机重装系统!是...
旧版安卓系统转换器,轻松实现系... 你有没有想过,你的安卓手机上那套旧版系统,其实是个隐藏的宝藏呢?没错,就是那个让你习惯了,却又觉得有...
安卓怎样变苹果系统教程,轻松实... 你是不是也和我一样,对安卓系统有点儿腻味,想要换换口味,体验一下苹果系统的魅力呢?别急,今天我就来手...
安卓最稳定系统的手机,流畅体验 你有没有想过,为什么有些安卓手机的系统用起来就是那么顺滑,仿佛它就是为你量身定做的?今天,就让我带你...
鸿蒙系统跟安卓数据互传,技术融... 你知道吗?最近手机界可是热闹非凡呢!鸿蒙系统和安卓数据互传这个话题,简直成了大家茶余饭后的热门讨论。...
鸿蒙系统算不算安卓机型,揭秘其... 最近手机圈可是热闹非凡呢!尤其是华为的鸿蒙系统,一经推出就引发了无数讨论。其中,最让人好奇的就是:鸿...
詹姆士手机是安卓系统吗,安卓还... 詹姆士的手机,安卓系统还是iOS?一探究竟!亲爱的读者们,你是否也有过这样的疑问:詹姆士的手机是安卓...
任天堂switch刷安卓系统,... 亲爱的游戏爱好者们,你是否曾想过,在你的任天堂Switch上体验一下安卓系统的魅力呢?想象在Swit...
安卓平板系统录屏软件,功能解析... 亲爱的平板用户们,你是否有过这样的时刻:想要记录下平板上的精彩瞬间,却又苦于没有合适的工具?别担心,...
怎么进入安卓机系统吗,安卓机系... 亲爱的读者,你是不是也对安卓机的系统充满了好奇,想要一探究竟,了解如何进入安卓机的系统呢?别急,今天...
安卓投影进不了系统,探究原因及... 最近是不是你也遇到了这样的烦恼:安卓设备上的投影功能怎么就进不了系统呢?别急,让我来给你详细解析一下...
安卓系统需要手机管家吗,全面解... 你有没有想过,你的安卓手机里是不是也需要一个像管家一样的存在呢?没错,说的就是手机管家这个神奇的小玩...