早起在学习时,就知道null和undefined的区别。那么,这不是重点,至于它们的区别已经是众人皆知了,但还是跟大家一起回顾以下吧。
varx=null;
vary=undefined;
数据类型:
object
undefined
相等和严格相等(==和===):
true
false
转换为false:
在判断语句中,这两种均被转换为false
数值:
null转为数值时为0
undefined转为数值时为NaN
昨天在听广播时了解了一些关于这两个对象的伴生原因。
所有的数据保存在计算机内存中是以二进制的形式保存的。js解释器进行编译的时候,有一个规则一个数据转换成二进制时前三位都是“0”,这是用typeof检验时就会返回object。
null转换成二进制时,所有的位置上全部都是0,所以,这是js解释器在开发时存在的一个bug。那么之后当发现了这个情况之后,就添加了undefined。在其他语言中只有unll表示空,但在js中,则出现了这两种值表示空。也就是说,undefined其实是对null的一个补充功能。
用法:
null
函数的参数,表示该函数的参数不是对象;
对象原型链的终点。
undefined
变量生命为赋值为undefined;
调用函数时,应该提供的参数没有提供,该参数等于undefined;
对象没有赋值的属性,属性值为undefined;
函数没有返回值,默认返回undefined。
本微信号所有内容为前端客用户原创,前端客已获得独家授权,欢迎分享。
如有转载需求请留言征询,对于未经许可私自篡改内容、转载的行为我们保留追究维权的合法权利!
领取专属 10元无门槛券
私享最新 技术干货