【问题标题】:Why Babel parses IIFE of arrow function为什么 Babel 解析箭头函数的 IIFE
【发布时间】: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


【解决方案1】:

但是 Babel 可以接受。为什么?

因为 Babel 是越野车 :-) 请参阅 https://phabricator.babeljs.io/T2118https://phabricator.babeljs.io/T2027。如果我理解正确的话,它是由 Babel 6 修复的 - 这是一个非常重大的变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多