为什么要使用void关键字?

时间:2013-03-05 18:42:03

标签: javascript

我在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]

2 个答案:

答案 0 :(得分:11)

来自MDN Docs of void

  

<强>语法

void expression
     

<强>用途

     

此运算符允许插入产生副作用的表达式   到表达式为undefined的表达式   期望的。

     

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

为什么?请参阅MDN Undefined

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

答案 1 :(得分:1)

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

此运算符指定要计算的表达式而不返回值。它的语法可能是following

之一