undefiend和null的区别

Undefined和Null虽然是两种不同的基本数据类型,存在一些不同的特性,但是在某些表现上存在着相同之处,这里总结了Undefined和Null的相同点和不同点。

 

相同点

(1)undefiend和null两种数据类型都只有一个字面量值,分别都是undefiend和null

(2)undefiend和null在转换为Boolean类型的时候都为false

(3)在转换为对象的时候,都会抛出一个异常。比如:let a = null | undefiend,a.nam会报“”“cannot read propety ''name' of undefined”

(4)undefined是派生自null类型,在非严格情况下,两者是相等的

 

不同点

(1)null为javascript中的关键字,undefiend是javascript的一个全局变量,挂载到window上面的一个变量。

(2)在使用typeof运算符检测时,Undefined类型的值会返回“undefined”,而Null类型的值会返回“object”。

(3)在通过call调用toString()函数时,Undefined类型的值会返回“[object Undefined]”,而Null类型的值会返回“[object Null]”

(4)在需要进行数值类型的转换时,undefined会转换为NaN,无法参与计算;null会转换为0,可以参与计算

工作总结:

无论在什么情况下都没有必要将一个变量显式设置为undefined。如果需要定义某个变量来保存将来要使用的对象,应该将其初始化为null。这样不仅能将null作为空对象指针的惯例,还有助于区分null和undefined。

 

posted @ 2022-08-19 09:30  鸡腿太小  阅读(44)  评论(0编辑  收藏  举报