null 和 undefined 的区别

  • null是关键字;undefined是Global对象的一个属性
  • null是对象(空对象, 没有任何属性和方法);undefined是undefined类型的值。
1
2
document.writeln(typeof null); //return object
document.writeln(typeof undefined); //return undefined
  • 对象模型中,所有的对象都是Object或其子类的实例,但null对象例外
  • document.writeln(null instanceof Object); //return false

  • null“等值(==)”于undefined,但不“全等值(===)”于undefined:

1
2
document.writeln(null == undefined); //return true
document.writeln(null === undefined); //return false
  • 运算时null与undefined都可以被类型转换为false,但不等值于false:
1
2
3
document.writeln(!null, !undefined); //return true,true
document.writeln(null==false); //return false
document.writeln(undefined==false); //return false