我在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]
?
答案 0 :(得分:11)
<强>语法强>
void expression
<强>用途强>
此运算符允许插入产生副作用的表达式 到表达式为undefined的表达式 期望的。
void运算符通常仅用于获取未定义的运算符 原始值,通常使用“void(0)”(相当于“void” 0“)。在这些情况下,可以使用未定义的全局变量 (假设它尚未分配给非默认值)。
为什么?请参阅MDN Undefined
在旧版本的JavaScript中undefined
可以被覆盖,但是从JavaScript 1.8.5开始,根据ECMAScript 5规范,undefined是不可写的。
答案 1 :(得分:1)
void是JavaScript中的一个重要关键字,它可以用作在单个操作数之前出现的一元运算符,该操作数可以是任何类型。
此运算符指定要计算的表达式而不返回值。它的语法可能是following
之一