javascript - 为什么 javascript void 语句对表达式求值?

标签 javascript

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

void 0;
void(0);

看Raghu的回答,文档说

This operator allows inserting expressions that produce side effects into places where an expression that evaluates to undefined is desired.

但是你能不能给我一个例子,你不能把 void(0) 放在需要值 ùndefined` 的位置,然后在另一行计算带有副作用的表达式?

最佳答案

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 所示

关于javascript - 为什么 javascript void 语句对表达式求值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18970446/

相关文章:

javascript - 使用 img 标签创建文本节点的子字符串时防止下载图像

javascript - Chrome 开发者工具 JavaScript 版本

javascript - 使用 Javascript 在 iOS 上触发类似 click() 的东西?

javascript - 如何使用 Angular2 的 ngClass 创建动态类?

javascript - MVC Razor 应用程序中的 SignalR javascript

javascript - 如何在 Express 中处理 GET 参数?

javascript - Bootstrap 多选内的工具提示

javascript - 如何在我的对象范围之外调用 'this'?

javascript - 如何在下拉 Protractor e2e 测试中选择选项

javascript - 如何强制用户在 JavaScript 加载之前不要点击(灯箱)