大部分编程语言一般有一个表示“无”的值,而js中却有两个,null和undefined。所以查了一些资料,小结在此,以便查阅。
js中的变量有两大类,基本的值类型,引用类型。其中值类型分为:Undefined,Null,Number,Boolean,String五种。可见null和undefined是不同的类型。
a)undefined
undefined的出现一般有以下几种情况:
1 变量声明而未初始化。
2 对象的属性未赋值。
3 函数调用时,缺省的参数为undefined。
4 函数没有返回值时,默认返回undefined。
从上面可以看出,当变量或属性未初始化时,缺省值即为undefined,所以不需要显示的设置一个变量的值为undefined。这时就会想不需要显示设置,要他干吗???其实它只是为了区分空对象指针(null)与未经初始化的变量(undefined)。
b)null
null表示空对象指针,即存储尚未存在的对象。所以这也是使用typeof操作符检测null时返回"object"的原因。(typeof返回字符串且首字母小写)
上面提到不需要显示设置变量值为undefined,而把值设置为null却是很必要的,假如声明的变量用来表示对象,而还没有真正保存,就应该将其设置为null。
还有就是undefined是派生自null的,所以用“==”时返回的是true。