为什么javascript void语句会计算表达式?

时间:2013-09-23 23:16:38

标签: javascript

javascript void语句计算表达式,并返回undefined值。这很有用,因为可以重新定义全局变量undefined,但为什么要评估en表达式?大多数人只使用0,如

void 0;
void(0);

看看Raghu的答案,文件说

  

此运算符允许将产生副作用的表达式插入到需要求值为undefined的表达式的位置。

但是,你能给我一个例子,你不能只将void(0)放在需要值ùndefined`的位置,并在另一条线上评估带有副作用的表达式吗?

2 个答案:

答案 0 :(得分:2)

void运算符的主要用途是(或者,就像今天你可能更喜欢使用事件处理程序)来阻止点击带有javascript:网址的链接时的任何导航。当此javascript函数返回undefined时,不会发生导航。 void运算符通常是实现此目的的最短路径。

示例

<a href="javascript: void console.log('click') ">log click to console</a>

或者,更一般的

<a href="javascript: void doSomething() ">do something</a>

如此fiddle

中所示

答案 1 :(得分:1)

标准文档应有助于理解为什么评估表达式以及大多数人使用它的位置和原因

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void