null 和 undefined的区别

191 阅读1分钟

javascript中null和undefined几乎是相等的

在if语句中,两者都会转为false,使用相等运算符比较也是相等的

console.log(null==undefined);    //true  因为两者都默认转换成了false
console.log(typeof undefined);    //"undefined"  
console.log(typeof null);       //"object"  
console.log(null===undefined);    //false   "==="表示绝对相等,null和undefined类型是不一样的,所以输出“false

两者的区别:

null表示对象,说明该处没有值

1.作为函数的参数,说明函数的参数不是对象

2.作为对象原型链的终点

undefined表示缺少值,即该处应该有值,但没有定义

1.定义了形参,但没有传实参,此时参数显示undefined

2.对象属性不存在时,显示的是undefined

3.函数没有返回值,即没有写return,拿到的是undefined

4.函数写了return,拿到的是undefined


null和undefined转换成number数据类型

null 默认转成 0

undefined 默认转成 NaN