undefined是什么意思?null和undefined对比如何?
简单区分
总的来说null和undefined都代表空,主要区别在于undefined表示尚未初始化的变量的值,而null表示该变量有意缺少对象指向。
undefined
这个变量从根本上就没有定义
隐藏式 空值
null
这个值虽然定义了,但它并未指向任何内存中的对象
声明式 空值
MDN 中给出的定义
null
值null是一个字面量,不像undefined,它不是全局对象的一个属性。null是表示缺少的标识,指示变量未指向任何对象。把null作为尚未创建的对象,也许更好理解。在 API 中,null常在返回类型应是一个对象,但没有关联的值的地方使用。
undefined
undefined是全局对象的一个属性。也就是说,它是全局作用域的一个变量。undefined的最初值就是原始数据类型undefined。
一张神奇的图片
接下来我们看一张比较经典的图片,该图来自 stackoverflow 的回答,本人没有找到准确的出处。
表现形式
在更深入理解null和undefined的区别前,我们首先要知道null和undefined在JS中有什么不同的表现形式,用以方便我们更好的理解null和undefined的区别。
typeof
typeof null // 'object'
typeof undefined // 'undefined'
Object.prototype.toString.call
typeof null // '[object Null]'
typeof undefined // '[object Undefined]'
== 与 ===
null == undefined // true
null === undefined // false
!!null === !!undefined // true
Object.getPrototypeOf(Object.prototype)
JavaScript中第一个对象的原型指向null。
Object.getPrototypeOf(Object.prototype) // null
+ 运算 与 Number()
let a = undefined + 1 // NaN
let b = null + 1 // 1
Number(undefined) // NaN
Number(null) // 0
JSON
JSON.stringify({a: undefined}) // '{}'
JSON.stringify({b: null}) // '{b: null}'
JSON.stringify({a: undefined, b: null}) // '{b: null}'
let undefiend = 'test'
function test(n) {
let undefined = 'test'
return n === undefined
}
test() // false
test(undefined) // false
test('test') // ture
let undefined = 'test' // Uncaught SyntaxError: Identifier 'undefined' has already been declared
深入探索
为什么 typeof null 是 object?
typeof null输出为'object'其实是一个底层的错误,但直到现阶段都无法被修复。
原因是,在JavaScript初始版本中,值以32位存储。前3位表示数据类型的标记,其余位则是值。
对于所有的对象,它的前3位都以000作为类型标记位。在JavaScript早期版本中,null被认为是一个特殊的值,用来对应C中的空指针。但JavaScript中没有C中的指针,所以null意味着什么都没有或者void并以全0(32个)表示。
因此每当JavaScript读取null时,它前端的3位将它视为对象类型,这也是为什么typeof null返回'object'的原因。
为什么 Object.prototype.toString.call(null) 输出 '[object Null]'
toString()是Object的原型方法,调用该方法,默认返回当前对象的[[Class]]。这是一个内部属性,其格式为[object Xxx],其中Xxx就是对象的类型。
JavaScript 万物皆对象,为什么 xxx.toString() 不能返回变量类型?
这是因为 各个类中重写了toString的方法,因此需要调用Object中的toString方法,必须使用toString.call()的方式调用。
对于Object对象,直接调用toString()就能返回'[object Object]'。而对于其他对象,则需要通过call / apply来调用才能返回正确的类型信息。
为什么 == 和 === 对比会出现 true 和 false ?
很多文章说:undefined的布尔值是false,null的布尔值也是false,所以它们在比较时都转化为了false,所以undefined == null。
实际上并不是这样的。
ECMA在11.9.3章节中明确告诉我们:
Ifxisnullandyisundefined, returntrue.
Ifxisundefinedandyisnull, returntrue.
这是JavaScript底层的内容了,至于更深入的内容,如果有兴趣可以扒一扒JavaScript的源码。
为什么null + 1和undefined + 1表现不同?
这涉及到JavaScript中的隐式类型转换,在执行加法运算前,隐士类型转换会尝试将表达式中的变量转换为number类型。如:'1' + 1会得到结果11。
null转化为number时,会转换成0
undefined转换为number时,会转换为NaN
至于为什么执行如此的转换方式,我猜测是JavaScript早期的一个糟糕设计。
从语言学的角度来看:
null意味着一个明确的没有指向的空值,而undefined则意味着一个未知的值。
在某种程度上,0意味着数字空值。
这虽然看起来有些牵强,但是我在这一阶段能所最能想到的可能了。
为什么 JSON.stringify 会将值为 undefined 的内容删除?
其实这条没有很好的解释方式,JSON会将undefined对应的 key 删除,这是JSON自身的转换原则。
在undefined的情况下,有无该条数据是没有区别的,因为他们在表现形式上并无不同:
let obj1 = { a: undefined }
let obj2 = {}
console.log(obj1.a) // undefined
console.log(obj2.a) // undefined
但需要注意的是,你可能在调用接口时,需要对JSON格式的数据中的undefied进行特殊处理。
为什么 let undefiend = 'test' 可以覆盖掉 JavaScript 自身的 undefined?
JavaScript对于undefined的限制方式为全局创建了一个只读的undefined,但是并没有彻底禁止局部undefined变量的定义。
据说在JavaScript高版本禁止了该操作,但我没有准确的依据。
请在任何时候,都不要进行undefined变量的覆盖,就算是你的JSON转换将undefined转换为''。也不要通过该操作进行,这将是及其危险的行为。
总结
关于使用 undefined 还是 null
这是一条公说公有理婆说婆有理的争议内容。
本人更倾向于使用null,因为这是显示定义空值的方式。我并不能给出准确的理由。
但关于使用undefined我有一条建议:
如果你需要使用undefined定义空值,请不要采取以下两种方式:
let a;
let a = undefined;
进而采取下面这种方式显式声明undefined:
let a = void 0;
关键词: undefined是什么意思 null和undefined对比如何 undefined出现的形式 undefined代表什么意思
相关阅读
-
undefined是什么意思?null和undefined对比如何?
简单区分总的来说null和undefined都代表空,主要区别在于undefined... -
wahson华生生活电器怎么样?华生的电器...
近日通报2021年电风扇等重点产品专项监督抽查情况。抽查20批次电风... -
okwap是什么牌子手机?okwap手机报价是多少?
okwap手机,也就是国产手机品牌英华达手机,它旗下有三个系列的手机... -
超威电池怎么样?超威电池使用寿命是什么?
疫情影响下,我跟很多上班族一样,放弃了乘坐公交、地铁等公共交通... -
塞班系统还能用吗?塞班系统失败的根本...
大家还记得曾经盛极一时的诺基亚手机吗?而诺基亚使用的塞班系统,在... -
苹果手机充电器买哪种好?两款高性价比...
航嘉65W氮化镓充电器采用第三代半导体材料,这使得充电头在充电效率...
精彩推送
-
undefined是什么意思?null和undefined对比如何?
简单区分总的来说null和undefined都代表空,主要区别在于undefined... -
wahson华生生活电器怎么样?华生的电器...
近日通报2021年电风扇等重点产品专项监督抽查情况。抽查20批次电风... -
okwap是什么牌子手机?okwap手机报价是多少?
okwap手机,也就是国产手机品牌英华达手机,它旗下有三个系列的手机... -
车联网应用条件日趋成熟智能网联产业有...
电动化、智能化、网联化已成为当前汽车产业变革的趋势和潮流。将“... -
智能网联汽车应该逐步适应经济社会发展...
互联网、信息技术等技术的进步改变了各行各业的发展模式,尤其是作... -
浙江青田先行,国内首个元宇宙智算中心来了
据浪潮消息称,浙江省青田县人民政府与浪潮信息、谷梵科技签署战略... -
儒卓力全新CO2感应适配板RAB2,为您缩短...
RSS(儒卓力系统方案)产品组合新增了CO2感应适配器板RAB2。这款板卡... -
元宇宙时代!全国首款裸眼3D虚拟机器人...
“您好,请问有什么能帮您?”11月16日,湖北联投旗下东湖高新集团的... -
世界观察:贸泽电子开售用于3D人脸识别...
2022年12月5日–贸泽电子(MouserElectronics)即日起备货NXPSemicond... -
【环球新视野】智能网联汽车是推动众多...
随着电子、信息、通信等技术与汽车产业加速融合,汽车产品加快向智... -
Digi-Key 将于 2022 年 12 月 1 ...
全球供应品类极为丰富、发货快速的现货电子元器件分销商 Digi-KeyE... -
天天观察:智慧城市、智慧交通让我们过...
根据前瞻产业研究院发布的《中国大数据与人工智能发展前景预测与投... -
环球实时:Digi-Key Electronics 将在...
全球供应品类丰富、发货快速的现货电子元器件和自动化产品分销商 D... -
全球速递!乡村爱情系列剧第三部演员有...
乡村爱情故事第3部的演员,《乡村爱情故事》是由贺树峰、毕畅、于月... -
滚动:系统寄售金币会收手续费吗?一般...
dnf金币寄售手续费多少,系统寄售金币会收的手续费通常为5%。如果寄... -
动态焦点:粽子主要食材是哪些?要煮多久...
生粽子要煮多久才熟,煮1到3个小时。因为粽子的主要食材是糯米,糯... -
全球实时:盗墓笔记小说一共有几部?分...
盗墓笔记小说有几部,《盗墓笔记》一共有八部,分别是:《盗墓笔记1... -
环球报道:求内容有带着系统做主播的小说...
带着系统做主播的小说,1、《至尊主播》作者:兔子来了;2、《极品... -
人人视频提升等级有哪些方法?为什么突...
为什么人人视频突然不能看了,在人人视频中突然不能观看后续的视频... -
全球最资讯丨惟楚有才于斯而盛怎么翻译...
惟楚有才于斯而盛什么意思,惟楚有才于斯而盛,翻译就是:楚国人才... -
【全球新要闻】带密码的QQ相册怎么查看?
如何看带密码的QQ相册,1、打开一个加密的QQ空间相册,单击”工具“... -
焦点热议:深圳找工作有哪些网站?哪个靠...
深圳找工作哪个网站靠谱,深圳找工作哪个网站好?很多人问过我类似... -
1345违章是怎么回事?包含哪些违章行为?
1345是什么违章,机动车违反禁止标线指示的,包括行驶中压双黄线、... -
手机电量校准在哪设置?华为手机电量校...
华为手机电池消耗快不耐用?教你打开补电功能,增加电池耐用度今天给... -
halfsun蓝牙耳机怎样配对?蓝牙耳机的使...
蓝牙耳机是一种十分便捷的电子产品,一直以来受到人们的广泛关注,... -
koobee是什么牌子手机?酷比X60Pro安卓...
IT之家 5 月 7 日消息 据网友反馈,近期,国产手机酷比(koobee... -
月兔空调质量怎么样?月兔空调属于什么...
俗话说:疯如四月兔,奔跑能上树。空调即将进入旺季,江湖上传出了... -
华为手机相册怎么加密照片?华为手机加...
私密相册是一个隐藏的界面,里面的内容都是独立加密的,在桌面系统... -
dram是什么意思?国产DDR的突破是什么?
最近几年,电子产品的价格走势不断降低,大家也觉得日后的电子产品... -
gt740显卡最佳设置是什么?gt740显卡最...
相信爱打游戏的小伙伴们一定遇到过这些问题,本来今天开开心心打开... -
苹果笔记本电脑重装mac系统教程是什么?...
Apple 在去年底推出了搭载自研 M1 芯片版本的 Mac 产品,除了... -
微软软件有哪些好用?微软自带软件有哪些?
大部分人目前正在使用的主力生产工具系统是微软家的Windows系列,而... -
空调不制热怎么回事?空调不制热处理方...
你知道空调为什么不制热了?是什么原因导致的?应该怎么解决?空调不制... -
超威电池怎么样?超威电池使用寿命是什么?
疫情影响下,我跟很多上班族一样,放弃了乘坐公交、地铁等公共交通... -
塞班系统还能用吗?塞班系统失败的根本...
大家还记得曾经盛极一时的诺基亚手机吗?而诺基亚使用的塞班系统,在... -
苹果手机充电器买哪种好?两款高性价比...
航嘉65W氮化镓充电器采用第三代半导体材料,这使得充电头在充电效率... -
飞行模式什么意思?飞行模式的主要用途...
不管是苹果手机还是安卓手机,都有飞行模式这个功能。但是很多人会... -
电脑黑屏却开着机是为什么?电脑黑屏却...
电脑屏幕不亮然而电脑主机仍然处于运行状态怎么解决呢?电脑是我们日... -
usb调试模式怎么开?开USB调试模式的办...
安卓手机怎样开启USB调试模式?可能你正在想给你的手机开启root,然... -
富士通扫描仪怎么样?富士通ScanSnap新...
扫描设备作为将纸质文档数字化的第一步,人们多在金融行业、教育行... -
热管散热技术原理是什么?热管的结构和...
在中学物理的物态变化的单元,简单的介绍了热管的原理。热管是一种... -
耳机转接线影响音质吗?3.5mm耳机接口的...
是一个比较喜欢电子产品的人,也是一个喜欢音乐的人。除了用专用的... -
华为如何启用googleplay服务?使用谷歌服...
自从华为手机mate30 pro以上的华为设备自带的谷歌服务没有了以后,... -
天天信息:上汽荣威的4个短片,硬生生把...
值得我们庆幸的是,目前国内的疫情防控形势已经在稳中向好的方向发... -
每日快播:思域:运动家轿标杆产品的自...
“预算15万,想买个主打运动的轿车,目前备选项只剩东风本田思域和... -
探寻白居易故里,感受绿水青山,有TA的...
“人间四月芳菲尽,山寺桃花始盛开。”这是“诗王”白居易赞美四月... -
环球今头条!销量仍不乐观,车企动荡频...
3月销量刚刚出炉,根据中汽协的官方统计分析,3月整体乘用车产销降... -
15万级纯电家轿“优等生”之间的较量,...
无独有偶,在汽车行业中,新能源领域同样有着跨时代意义,而几何A和... -
快播:4月SUV触底反弹,哈弗H6、长安CS7...
“汽车产业是中国经济的‘晴雨表’,疫情过后,汽车产业恢复成什么... -
既生瑜何生亮?锐际实力抢饭,领界饿的...
说起去年半路杀出的黑马SUV车型,2019年1月22日上市的福特领界一定... -
2020款新缤智:我还是从前那个少年,只...
“后排空间惊人,甚至有点奢侈,更不可思议的是,后备箱也做得巨大... -
这款柴油版MPV的出现,让众多创业者喜不...
眼下已是四月下旬,随着国内多地疫情得到全面控制,民众被压抑许久... -
当前观点:车市抗“疫”攻坚战,为何要...
“快来抄XXX的作业”!一夜之间,这个“新冠肺炎”疫情全民防控期间... -
@华晨雷诺&华晨中华,挂羊头卖狗肉的勾...
受突如其来的“新冠肺炎”疫情影响,2020年央视315晚会将延期播出,... -
天天观点:后起之秀的林肯冒险家,妥妥...
“个体在社会认知当中,‘第一印象’最先输入的信息,会对客体以后... -
狗日的疫情,吓不倒咱!
河南威佳汽车集团旗下有20个品牌共计136家4S店,是河南当之无愧的最... -
全球速看:暗访丨消费者“控诉”ICON一...
新上市的吉利ICON咋这么难买呢?去年年底我们在4S店看到样车就交了... -
世界焦点!展车都卖完了!CR-V为何如此...
“又一次把展厅里的展车给卖完了,接下来只能卖展厅经理了,到底要... -
天天速讯:@东风启辰,嗟来之食都不认真...
昨天,汽车情报新媒体刊发了《@华晨雷诺&华晨中华,挂羊头卖狗肉的... -
环球今热点:太南了,这22家车企跌幅超...
无独有偶,就如今的汽车行业而言,不少车企也面临着同样困境。据乘... -
天天新消息丨国潮正当时!嘉悦A5斩获年...
数据不会说谎,2019年9月,“百度国潮季”联合人民网研究院共同发布... -
技术推进成为医疗数字化发展的重要节点
医疗数字化转型身处机遇中,往往也将面临挑战。总结来看,目前智慧... -
【速看料】随着智慧医疗的发展它已深入...
随着社会经济转型,老龄化、城镇化等趋势所带来的居民健康需求也更加... -
氢燃料电池汽车赛道上还挤满抢跑汽车厂...
氢燃料电池指的是氢通过与氧的化学反应而产生电能的装置(单纯依靠燃... -
科技寒冬!2022财年净利大跌51%!惠普裁...
11月23日消息,当地时间周二惠普在公布了其惨淡的第四财季及2022财... -
Web2与Web3又一次“打通”,Web3将成技...
“Web3 0”是对“Web2 0”的改进,在此环境下,用户不必在不同中... -
当前快播:人工智能领域向着科技创新的...
11月18日,第五届世界声博会暨2022年科大讯飞全球1024开发者节在合... -
最资讯丨小米MIUI月活量创新高!全球5.6...
11月23日消息,今日,小米集团公布2022年第三季度财报,报告期内小... -
每日资讯:小米三季度经调整净利润为21...
11月23日晚间,小米集团在港交所发布了2022年第三季度财报,收入同... -
全球快报:科大讯飞、京东、臻像科技等企...
2022科大讯飞全球1024开发者节正式开幕!新技术、新产品、新平台与新... -
笔电厂商持续砍单!惠普目标较年初已砍去47%
由于疫情带来的红利逐渐消退,再加上通货膨胀等因素的影响,近两个... -
每日观察!2020沃德十佳发动机出炉,这款...
既然在汽车工业强国的美国创立,那么可想而知,沃德十佳发动机的评... -
买海马8S没地方维修保养?醒一醒吧,都2020了
作为中国品牌中为数不多搭载1 6T直喷涡轮增压发动机的紧凑型SUV,... -
快报:决战紫禁之巅!博越PRO和荣威RX5...
在中国品牌SUV的发展长河中,吉利博越和荣威RX5两款车扮演了举足轻... -
当前视讯!太南了,爱驰三年终于造了一...
3年前,付强说服了时任上汽集团副总裁兼CFO的谷峰,与他一起踏上了... -
热点在线丨焦点丨本来中意奔驰GLE,为何...
对于这个级别的SUV车型,至少在我看来,气质是一定不能少的!所以,... -
天天实时:兵家必争之地的华中车市,为...
中部车市是中国汽车品牌的兵家必争之地,中部车市怎么样,中国汽车... -
专访丨陈高潮:深耕动力牌,推出新产品...
经济学中有这样一个案例,如果你要创业开一家冰淇淋店,那你要选择... -
天天讯息:买博越PRO还是CR-V?看完这个...
虽然阳历上现在已经进入了2020年,但是按照咱们中国人的传统,不到... -
世界观焦点:同甘容易共苦难!逆境之下...
2019年的车市寒流,不但对主机厂造成了较大冲击,而且也影响到汽车... -
哪种机器人在智能制造业中更受欢迎
现在大多数制造企业开始转向智能制造,工业机器人的引进和使用是大... -
焦点关注:人工智能与物联网的结合将会...
在快速增长的物联网世界中,它跨庞大的设备或事物网络连接和共享数... -
什么是对话式AI?在医疗行业能提供哪些...
对话式AI是一种综合运用多种技术的复杂的人工智能形式,能够使人机... -
环球资讯:智慧医疗的覆盖场景得到了极...
在互联网的发展下,人工智能、云计算、大数据等新一代信息技术的发... -
真正实现智慧医疗在健康医疗服务领域的...
我国虽已正式进入5G时代,当前5G技术与智慧医疗融合效果显著,但其... -
观焦点:提高智慧健康医疗便民惠民服务...
智慧医疗实际已经应用到我们的生活中,例如自主挂号系统、自助缴费... -
智慧医疗的快速发展和应用的发展提供了...
智慧医疗是利用先进互联网和物联网技术,通过智能化方式实现医疗卫... -
热门看点:评测丨TNGA为第12代卡罗拉带...
这不,这款8月份上市的第12代卡罗拉,虽由外至内大换血,而起步价却... -
重磅丨已炸裂,汽车行业首家视频聚合共...
字母表出现以前,耳朵决定我们认识世界的观点。莎草纸的出现,结束... -
全球今头条!观察丨从WEY三周年品牌之夜...
出人意料的是,当众人都理所应当的认为“三周年之夜”是一场盛大的... -
环球观焦点:手握四张“王牌”,嘉悦A5...
十多年前,风靡全国的瑞风MPV开启了江淮乘用车的1 0时代,扎实耐用... -
天天速讯:销量都那么好了,广汽本田为...
在万马齐喑的2019年,广汽本田却高歌猛进,成为中国车市的一大亮点... -
当前热点-三款热门紧凑SUV大PK,阵容不...
无独有偶,在备受关注的紧凑型SUV市场中,产品也是一代又一代地更迭... -
天天观速讯丨聚焦丨北京现代双车齐发,...
不过,王者就是王者,不服输的北京现代很快就打响了全面复兴的战役... -
当前快报:买大还是买小?看了瑞风M3 PL...
前不久,2019年福布斯中国富豪榜正式出炉。值得关注的是,除了多位... -
陆风荣曜正式开启预售,将成国产SUV市场...
这样的好处也非常明显,例如其更优异的宽度数据与更长的轴距,可让... -
全球实时:平地起惊雷!吉利icon限量版...
尽管经历了短暂的金九银十销售旺季,但回首前10个月的中国车市,一... -
将动力电池做到全球前十,谁还能挡住长...
4年前,长城汽车推出了首个电动车品牌欧拉,打响了传统车企专攻新能... -
今亮点!兵马俑全部挖掘完了吗?为什么?
兵马俑挖掘完了吗,兵马俑还没有全部挖掘完。因为现在还没有这个技... -
天天快资讯:赛尔号精灵有哪些技能可以...
赛尔号精灵中有哪些会秒杀的技能,赛尔号中有很多精灵有可以瞬间秒...