null
null是一个关键字,代表空值, typeof(null)得到结果是object,也就是说null是一个对象,它表示一个数字、字符串和对象是无值的。
undefined
undefined不是关键字,是一个只读的预定义的全局变量,代表‘未定义’,表示一个属性或元素不存在,以下情况返回undefined:
- 变量没初始化
var a
a //undefined
- 查询的对象不包含该属性
var o = {name:'bob', age:21}
o.sex //undefined
- 查询的数组不包含该元素
var x = [1,2]
x[3] //undefined
区别
null和undefined都表示值的空缺,经常可以互换
- null == undefined 返回true
- null === undefined 返回false
- 如果要赋值或作为函数参数,一般用null
- 它们都是假值, 即 if(null) if(undefined)和if(false)等同
网友评论