undefined和null与真值表

undefined

undefined类型只有undefined一个值.
表示变量已经定义,但是没有值
或者变量未定义

  1. 变量已定义,但是没有值
var a
a // undefined
  1. 变量未定义
typeof b // undefined

null

null指向不存在的对象, 表示变量是一个空的对象指针.

typeof null // object

undefined和null

  1. undefined和null都保存在栈内存上, 区别是null是个对象指针, 但是值是空.
  2. undefined可以被隐形类型转换为null
undefined == null // true
  1. 如果我们定义预定义一个对象, 可以先赋值为null.
  2. null和undefined都是保存在栈内存上, 区别是null实际上还指向堆内存.
  3. 判断对象是否存在某一个键的时候, 可以
if ( obj.c == null ) {
//doSomething
}

这样等于了

if ( obj.c === null || obj.c === undefined ) {
//doSomething
}

你可能感兴趣的:(undefined和null与真值表)