javascript - void 运算符在 javascript 中是如何工作的

标签 javascript

正如定义所说,void 运算符计算给定的表达式,然后返回undefined

所以在这段代码中

void function test() {
  console.log('test function executed');
};

如果我们像 test() 这样调用它,那么应该 console.log('test function executed'); 先求值,然后在完成后返回 undefined ? ,而不是只返回 undefined ?像这样

void function iife() {
  console.log('iife is executed');
}();

最佳答案

如果我们转到这个 operator precedence table ,我们看到函数调用 () 的优先级为 17,而 void 运算符的优先级仅为 14(与 typeof 相同、deleteawait)。正因为如此,下面的代码

void function iife() {
  console.log('iife is executed');
}();

实际上被当作

void (function iife() {
  console.log('iife is executed');
}());

如果你想让代码出错那么你需要使用括号:

// Cannot call 'undefined' as a function
(void function iife() {
  console.log('iife is executed');
})();

关于javascript - void 运算符在 javascript 中是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75111459/

相关文章:

javascript - 为什么下面的代码生成 4 个元素而不是 2 个?

javascript - ajaxify-html5.js 只重新加载页面的一部分?

javascript - 使用 CefSharp 将字符串/JSON 从 C# 传递到 JS

javascript - Angular Selectize - 绑定(bind)到模型(不是值)

javascript - Sequelize : How associate two fields from a table another table

javascript - XML 解析不起作用

javascript - fabric.loadSVGFromString 的扭曲结果

javascript - 连续的背景声音

javascript - 使用Django如何获取上传进度?

javascript - 在 REACT 中将数据发送到其后代的最佳方法是什么