一个很有意思的问题,null 和 undefined 有什么区别呢?
null 和 undefined ,粗略一看,这个貌似都表示 没有的意思,但是 这2个有什么区别呢?
编写如下程序:
<script type="text/javascript">
var a = null;
var b;
alert(a);
alert(b);
alert(c);
</script>
其分别显示 null,undefined,最后一个未定义的c 会报错。
再继续测试
<script type="text/javascript">
var a = null;
var b;
alert(typeof a);
alert(typeof b);
alert(typeof c);
</script>
用 typeof 函数 显示属性,a为 Object,b、c均为undefined。
因此我们可以看出null 的类型即是 object,可以理解成 null 是初始化变量成一种特殊状态的方式。
而undefined则是 访问的变量或方法未被 定义时所,解析器所抛出的问题。
顺带的提下 typeof 返回结果是一个字符串,因此在做比较的时候要与字符串做比较。
if(typeof null == underfined){//失败
}
if(typeof null == "underfined"){//成功
}