上周五上线代码,又踩了一次坑。导致线上bug。为此特意追查了下null和undefined在js中的却别。整理了相关的资料如下。
1.当值为null时,代表“空值”,实际上是空对象指针,使用typeof运算得到 “object”,是一个特殊的对象值。这个值是存在的,并且类型为object.
2.undefined类型,当一个声明了一个变量但是未初始化时,得到的就是undefined,是js独有的。undefined的引入的是为了区分空指针对象和未初始化的变量。
它是一个预定义的全局变量。没有返回值的函数返回为undefined,没有实参的形参也是undefined。
综合来看,null和 undefined都表示“值的空缺”,可以认为undefined是表示系统级的、出乎意料的或类似错误的值的空缺,null是表示程序级的、正常的或在意料之中的值的空缺。
undefined是访问一个未初始化的变量时返回的值,而null是访问一个尚未存在的对象时所返回的值。因此,可以把undefined看作是空的变量,而null看作是空的对象。
在定义一个想保存对象的变量时,就可以让该变量先保存null值,这样既能体现null是一个空指针对象,也能更好的区分null和undefined
网友评论