1、相似性
if (!undefined) console.log('undefined is false'); // undefined is false if (!null) console.log('null is false'); // null is false undefined == null// true
undefined和null在if语句中都会被自动转为false
2、不同之处
undefined
undefined表示“缺少值”,典型用法:
- 变量被声明了,没有赋值
- 调用函数时,应该提供的参数没有提供
- 对象的属性没有赋值
- 函数没有返回值
var i; i // undefinedfunction
f(x){console.log(x)} f() // undefined
var o = new Object(); o.p // undefinedr
x = f(); x // undefined
NULL
- 作为原型链的终点
- DOM,它是独立于语言的,不属于ECMAScript规范的范围。因为它是一个外部API,试图获取一个不存在的元素返回一个null值,而不是undefined
Object.getPrototypeOf(Object.prototype) // null
埋点:
{}与 null,类型不同(引用类型、基础类型)
NAN