undefined
undefined类型只有undefined一个值.
表示变量已经定义,但是没有值
或者变量未定义
- 变量已定义,但是没有值
var a
a // undefined
- 变量未定义
typeof b // undefined
null
null指向不存在的对象, 表示变量是一个空的对象指针.
typeof null // object
undefined和null
- undefined和null都保存在栈内存上, 区别是null是个对象指针, 但是值是空.
- undefined可以被隐形类型转换为null
undefined == null // true
- 如果我们定义预定义一个对象, 可以先赋值为null.
- null和undefined都是保存在栈内存上, 区别是null实际上还指向堆内存.
- 判断对象是否存在某一个键的时候, 可以
if ( obj.c == null ) {
//doSomething
}
这样等于了
if ( obj.c === null || obj.c === undefined ) {
//doSomething
}