null 和 undefined 基本同义 ,
他们在 if 语句中 null 和 undefined 都会转为false,他们转换成number数据类型时,null 会转成 0,undefined 会转成 NaN
null的类型是Objct,undefined类型是undefined 并不全等
他们的区别是
null表示没有对象,该处不应该有值
典型的场景是:
- 作为函数的参数,表示该函数的参数不是对象
- 作为对象原型链的终点
undefined表示缺少值,即此处应该有值,但没有定义
典型的场景是:
-
定义了形参,没有传实参,显示undefined
-
对象属性名不存在时,显示undefined
-
函数没有写返回值,即没有写return,拿到的是undefined
-
写了return,但没有赋值,拿到的是undefined