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。这种做法不多见,但在某些情况下却很有用