2015-12-17 3 views
0

Как я могу видеть из грамматики ES2015 это выражение не является допустимым:Почему Бабель разбирает IIFE функции стрелки

() => { console.log("hello"); }(); 

Вам нужно по крайней мере поставить скобки:

(() => { console.log("hello"); })(); 

Chrome терпит неудачу на первый образец с Uncaught SyntaxError: Unexpected token (

Но Бабель в порядке с этим. Зачем?

+0

Э-э, нет, где вы читаете в грамматике, что это недействительно? – Bergi

+0

Потому что babel красиво преображает ваш код? Я думаю, что это скорее похоже на то, что ваш хром не поддерживает ES2015 (ES6), или вы не активировали расширения разработчика. – Icepickle

+0

Если вы используете код непосредственно в консоли Chrome, он будет анализироваться, как если бы он был ES5. Бабель загружает код .js через ajax и перетаскивает его (так, Babel «понимает» ES6 и переводит его на ES5). – Mjh

ответ

Смежные вопросы