除了明显阻止点击链接(使用javascript:void(0);
)以及许多javascript预编译语言(例如coffeescript)中undefined
的定义(其中undefined
变为void 0
) - >还有什么可以使用void
函数?
相关:What does "javascript:void(0)" mean?
有用的链接:MDN page for void
答案 0 :(得分:5)
首先,void
是一个运算符,而不是一个函数。您的问题的答案不能比您在问题中提供的link to MDN中的解释更明确:
摘要
void
运算符计算给定的表达式,然后返回undefined
。...
用途
此运算符允许将产生副作用的表达式插入到需要求值为
undefined
的表达式的位置。
更改产生副作用的表达式的返回值。
var i;
i = 0; // returns 0
void i = 1; // returns undefined
但在大多数情况下,这种用途并不是很有价值。
我们已经知道:
undefined
进行比较 - 由于全局变量undefined
可以修改(它不是保留字),void 0
是获得undefined
的更可靠方式价值。例如:obj.foo === void 0
其他用途:
防止详细的控制台输出 - 当我只想执行某些代码并且不想用无趣的详细输出污染控制台时,我在JavaScript控制台中使用它。
明确地将undefined
传递给函数 - 知道是否在不传递参数的情况下调用函数,或者是否将参数传递给值为{的函数会很有用{1}}:
undefined
您的控制台输出将是:
true 0 true 1
JavaScript 是否需要此运算符?可能不是。您可以从自动调用匿名函数中获得相同的功能(和更多):
function countArguments(a) {
console.log(a === undefined);
console.log(arguments.length);
}
countArguments();
countArguments(void 0);
但这并不简洁。