除了undefined之外,javascript void函数的用例

时间:2013-01-30 18:55:48

标签: javascript void

除了明显阻止点击链接(使用javascript:void(0);)以及许多javascript预编译语言(例如coffeescript)中undefined的定义(其中undefined变为void 0 ) - >还有什么可以使用void函数?


相关:What does "javascript:void(0)" mean?

有用的链接:MDN page for void

1 个答案:

答案 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);

但这并不简洁。