15

我在kriskowal/q遇到了这个片段:

/**
 * Applies the promised function in a future turn.
 * @param object    promise or immediate reference for target function
 * @param args      array of application arguments
 */
Q.fapply = fapply;
function fapply(value, args) {
    return dispatch(value, "apply", [void 0, args]);
}

使用void关键字有什么意义?为什么不直接写[undefined, args]

4

2 回答 2

15

来自MDN Docs of void

句法

void expression

用途

此运算符允许将产生副作用的表达式插入需要计算结果为 undefined 的表达式的位置。

void 运算符通常仅用于获取未定义的原始值,通常使用“void(0)”(相当于“void 0”)。在这些情况下,可以使用全局变量 undefined 代替(假设它没有被分配给非默认值)。

为什么?MDN 未定义

在旧版本的 JavaScript 中undefined可能会被覆盖,但从 JavaScript 1.8.5 开始,根据 ECMAScript 5 规范,undefined 是不可写的。

于 2013-03-05T18:48:45.093 回答
1

void 是 JavaScript 中的一个重要关键字,它可以用作出现在其单个操作数之前的一元运算符,它可以是任何类型。

此运算符指定要计算的表达式而不返回值。它的语法可以是 以下之一

于 2013-03-05T18:53:37.180 回答