【发布时间】:2018-06-29 20:02:40
【问题描述】:
void operator 上的 MDN 文章提到了一种声明立即调用函数表达式 (IIFE) 的巧妙方法。
void function() {
console.log('hello');
}();
// is the same as...
(function() {
console.log('hello');
})();
我认为使用void 看起来很不错。传统的 IIFE 有很多括号,我觉得在视觉上很混乱。
然后我尝试用arrow function 重写这段代码。
void () => {
console.log('hello');
}();
这不会解析。 Chrome 在第 1 行显示“Uncaught SyntaxError: Unexpected token )”,其中定义了箭头函数。 Firefox 说,“语法错误:无效的箭头函数参数(箭头函数周围的括号可能会有所帮助)”。
当函数没有被调用时它甚至不解析。
void () => {
console.log('hello');
};
我已尝试阅读此内容(包括其他 SO 问题,例如 this one 和 this one)。
我猜这与箭头函数是AssignmentExpressions...有关吗?但是我在尝试关注ECMA-262 specification 时迷路了。
【问题讨论】:
标签: javascript