【发布时间】:2016-03-24 02:30:42
【问题描述】:
从 ES2015 的语法中我可以看出,这个表达式不是一个有效的表达式:
() => { console.log("hello"); } ();
你至少需要放括号:
(() => { console.log("hello"); }) ();
Chrome 在第一个示例上失败,Uncaught SyntaxError: Unexpected token (
但是 Babel 可以接受。为什么?
【问题讨论】:
-
呃,不,你在哪里读到它无效的语法?
-
因为 babel 可以很好地编译你的代码?我觉得是你的chrome还不支持ES2015(ES6),或者你没有激活开发者扩展
-
如果直接在 Chrome 的控制台中使用代码,会被当作 ES5 解析。 Babel 通过 ajax 加载 .js 代码并将其转译(因此,Babel “理解” ES6 并将其转换为 ES5)。
-
我很确定这是重复的,只是我找不到。有人吗?
-
@Bergi 我记得我在某个地方看到过这个。不记得这是否是 Babel phabricator 的问题。现在还在找呢
标签: javascript babeljs iife