JavaScript的null和undefined对比总结

目录

前言

  说到这两个类型,首先应该从整体上明确一下JavaScript中提供的数据类型。
  JavaScript中的数据类型分为两类:原始类型和对象类型。
  其中,原始类型又可以细分为如下5类:数字,字符串,布尔值,null,undefined。
  null和undefined都表示一种“空缺”的意思,但具体还有很多细节不同。


null

类型检测

null使用typeof检测,可得:

说明

  由以上结果可以看出,可以认为null是一种特殊的对象,表明了“非对象”这种概念。


undefined

类型检测

undefined使用typeof检测,可得:

说明

  undefined表明变量没有初始化。有以下几种常见情况的返回值是undefined:

  1. 如果一个元素不存在,那么在查询这个元素时会返回undefined。
  2. 如果一个函数没有返回值,那么默认返回的是undefined。
  3. 如果引用一个函数的某个形参值,但是这个形参却没有被赋予一个实参,那么会返回undefined。

综合分析

  1. 相等运算符认为二者是一样的:
  2. 严格相等运算符才能看出二者不同:
  3. 这两个类型是没有属性或者方法的(它们是基本类型,但没有对应的包装类型):