JS空值

null,undefined

  • null是一个表示”无”的对象,转为数值时为0
  • undefined是一个表示”无”的原始值,转为数值时为NaN
1
2
3
4
5
Number(null) //0
//null+5=0

Number(undefined) //NAN
//undefined+5=NAN
  • null 表示一个值被定义了,定义为“空值”;
  • undefined 表示根本不存在定义。
  • 所以设置一个值为 null 是合理的,如objA.valueA = null;但设置一个值为 undefined 是不合理的

  • null针对的是对象,表示一个未分配内存指针的对象,undefined针对原始类型,就是变量存放值的那个盒子里是空的

目前的用法

null表示”没有对象”,即该处不应该有值。典型用法是:

  • (1) 作为函数的参数,表示该函数的参数不是对象。
  • (2) 作为对象原型链的终点。

undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义。典型用法是:

  • (1)变量被声明了,但没有赋值时,就等于undefined。
  • (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
  • (3)对象没有赋值的属性,该属性的值为undefined。
  • (4)函数没有返回值时,默认返回undefined。