null和undefined的区别

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

原文地址:https://www.cnblogs.com/theblogs/p/9926576.html