关于void运算符的MDN文章提到了一种声明立即调用的函数表达式(IIFE)的巧妙方法.
void function() {
console.log('hello');
}();
// is the same as...
(function() {
console.log('hello');
})();Run Code Online (Sandbox Code Playgroud)
我觉得使用void这个看起来很不错.传统的IIFE有很多括号,我觉得这看起来很混乱.
然后我尝试使用箭头函数重写此代码.
void () => {
console.log('hello');
}();
Run Code Online (Sandbox Code Playgroud)
这不解析.Chrome在第1行显示"Uncaught SyntaxError:Unexpected token",其中定义了箭头函数.Firefox说,"SyntaxError:无效的箭头 - 函数参数(箭头函数周围的括号可能有帮助)".
它在调用函数时甚至不解析.
void () => {
console.log('hello');
};
Run Code Online (Sandbox Code Playgroud)
我已经尝试过阅读这个(包括其他SO问题,比如这一个和这一个).
我想这与箭头函数AssignmentExpressions有关...?但我迷失了试图遵循ECMA-262规范.