Null:代表空对象指针。现在没有,将来可能会有
undefined:空,未定义。现在没有,将来也不会有(Js中独有的数据类型)
区别:
两者类型不一样
console.log(typeof null); //object console.log(typeof undefined);//undefined
转成数值结果不一样
console.log(Number(null));//0 console.log(Number(undefined));//NaN
null出现的情况:
1、某个元素找不到
2、RegExp中匹配不到显示null
3、对象彻底销毁的时候为null (对象销毁->给复合数据类型赋值null,清除当前变量占用的内存)
undefined出现的情况:
1、变量未赋值为undefined
2、某个对象下没有这个属性
3、函数的默认返回值
4、访问形参时候,实参没有传值会出现undefined
5、变量提升->var变量声明时候,赋值前为undefined
6、在块级作用域{}之外访问undefined(内部访问是函数本身)
7、严格模式下的this是undefined
8、简单类型身上加属性结果为undefined