除了明显阻止链接被点击(和javascript:void(0);)和undefined许多javascript预编译语言的定义,如coffeescript(在哪里undefined成为void 0) - >该void功能还可用于什么?
实用链接:MDN页面void
首先,void是一个操作员,而不是一个功能.您的问题的答案不能比您在问题中提供的MDN链接中给出的解释更清楚:
摘要
的
void运算符计算给定表达式,然后返回undefined....
用途
此运算符允许将产生副作用的表达式插入到
undefined需要求值的表达式的位置.
更改产生副作用的表达式的返回值.
var i;
i = 0; // returns 0
void i = 1; // returns undefined
Run Code Online (Sandbox Code Playgroud)
但在大多数情况下,这种用途并不是很有价值.
我们已经知道:
undefined- 由于undefined可以修改全局变量(它不是保留字),void 0因此获取undefined值是一种更可靠的方法.例如:obj.foo === void 0其他用途:
防止详细的控制台输出 - 当我只想执行一些代码并且不想用无趣的详细输出污染控制台时,我在JavaScript控制台中使用它.
显式传递undefined给函数 - 知道是否在没有传递参数的情况下调用函数,或者是否将参数传递给值为的函数是有用的undefined:
function countArguments(a) {
console.log(a === undefined);
console.log(arguments.length);
}
countArguments();
countArguments(void 0);
Run Code Online (Sandbox Code Playgroud)
您的控制台输出将是:
true 0 true 1
JavaScript 需要这个运算符吗?可能不是.您可以从自动调用匿名函数中获得相同的功能(以及更多):
(function(){ /* expression */ })()
Run Code Online (Sandbox Code Playgroud)
但这并不简洁.
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |