区别
- 类型不一致:使用typeof()函数检测时,undefined返回值为undefined,而null的返回值为object。
console.log(typeOf undefined);//undefined
console.log(typeOf null);//object
- 转化后值不一致:undefined为NaN,null为0。
console.log(Number(undefined));//NaN
console.log(Number(10+undefined));//NaN
console.log(Number(null));//0
console.log(Number(10+null));//10
- 两者直接比较
undefined===null;//false
undefined==null;//true
何时使用
- null
使用情形
null表示"没有对象",即该处不应该有值。
典型用法
(1) 作为函数的参数,表示该函数的参数不是对象。
(2) 作为对象原型链的终点。 - undefined
使用情形
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。
典型用法
(1)变量被声明了,但没有赋值时,就等于undefined。
(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。