下面展示null 和 undefiend 发生的情况
var obj;
alert(obj); //1 结果为 undefined
alert(document.getElementById('notexists'));//2 结果为null
null==obj; //结果为True
null===obj;//结果为False 说明null 和 undefined 只存在继承关系.两者存在却别.
这里可以看到 null 虽然和 undefiend 存在继承关系,但是两者是有却别的.
undeifned : 表示对象已经声明,但是还没有赋值
null: 表示这个对象压根就不存在.
Tips:
typeof(null);//结果为 object
也许读者会感到奇怪,其实这里是ECMAScript 早期在编写JavaScript代码的时候一个设计. null 就是一个不存在对象的占位符.
参考资料 http://qindingsky.blog.163.com/blog/static/312233620095652130319/