读了阮一峰的博客,自己总结一下,便记录一篇博客
在javacript的基本类型中,有2种基本类型,只有1个值,便是null和undefined,都表示的是“无”。在一定程度上是相等的,如:
但又不完全相等:
同时,在if的判断条件中也是一致的:
if(null)跟if(undefined)是同样的结果。
从定义上来看:
undefined表示变量声明但未初始化时的值。
null表示准备用来保存对象,还没有真正保存对象的值。从逻辑角度看,null值表示一个空对象指针。
我们可以用typeof来检测一下上述定义:
记得《JS高程》中提过:任何时候都不建议显式的设置一个变量为undefined,但是如果保存对象的变量还没有真正保存对象,应该设置成null。也就是不建议这么写var a = undefined;
从用法上来看:
null的性质决定着它的以下用法:
1、作为函数的参数,表示该函数的参数不是对象。
function a(null){}
2、在JS中,万物皆对象,每个对象都有一个原型链,而null就作为对象原型链的终点。
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义,有以下几点用法:
另外,2者在进行强制类型装换时,是有差别的:
结果如下: