你不知道的 JavaScript 系列中, 10 - 特殊数值 undefined

undefined 类型只有一个值,即 undefined。 null 类型也只有一个值,即 null。它们既是类型也是值。null 指空值,undefined 指没有值或者:

undefined 指从未赋值
null 指曾赋过值,但是目前没有值

null 是关键字,不是标识符,不能将其当作变量来使用和赋值。undefined 却是一个标识符,可以当作变量来使用和赋值

undefined = 2; // 非常糟糕的做法,最好不要这样做

'use strict';
undefined = 2; // TypeError

undefined 是一个内置标识符,它的值是 undefined ,通过 void 运算符即可得到该值

void 42; // undefined
void 0; // undefined
void 1; // undefined
void true; // undefined

这些和 undefined 之间并没有实质上的区别。按惯例用 void 0 来获得 undefined 主要源自 C 语言

void 在其他地方也能派上用场,比如不让表达式返回任何结果

if(!APP.ready){
  return void setTimeout(doSomething, 100)
}

总之,如果要将代码中的值设为 undefined,就可以使用 void。这种做法不多见,但在某些情况下却很有用