相似:null和undefined区别不大 都表示“无,空”,对应的布尔值都是false 且运算结果相同
console.log(undefined == null) //true
面试题: 下面结果为真的表达式是:()
A.null instanceof Object
B.null === undefined
C.null == undefined
D.NaN == NaN
答案:c
区别:
null表示“无”的对象类型值,转为数字类型为0
undefined 表示‘无’的基本类型值 转换为数字类型是NaN
null 指空对象 但他是被定义过的 即此处不应该有值
undefined 是未被定义过的或不存在的。 就是此处应该有个值但未被定义
使用typeoof 运算符null返回object 而undefined返回的是undefined
null是一个关键字 undefined只是一个普通标识符,是一个全局属性(window对象的一个属性)
用法:
null:
- 原型链的末端返回null
- 访问一个不存在的dom节点时
- 预期得到一个对象时获取不到对象返回null
undefined:
- 变量只声明不赋值
- 函数没有定义返回值
- 访问对象中没有的属性
- 形参的默认值