正如定义所说,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
相同、delete
和 await
)。正因为如此,下面的代码
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/