2014-10-03 2 views
10

Я хотел бы начать писать код, используя вверх и вперед ECMAScript 6 (ES6), чтобы начать разбираться с новым синтаксисом.Как я могу написать и проверить код ECMAScript 6 сейчас?

Есть ли какой-либо веб-ресурс или плагин для браузера, который я могу использовать для воспроизведения (написания и тестирования кода) того, что мы имеем в настоящее время в отношении ES6?

Мне повезло, что использование Google Chrome Canary может помочь. Так что я скачал канарейку, я включил несколько функций в Canary:

Enable Experimental JavaScript (Mac, Windows, Linux, Chrome OS, Android)

Enable web pages to use experimental JavaScript features.
#enable-javascript-harmony Enable

И после тестирования сферы let блок в цикле

for (let i = 0; i < 10; i++) { 
    console.log(i); 
} 

я получил ошибку синтаксиса:

SyntaxError: Unexpected identifier

+1

Там в Traceur, но он ошибочен, как ад. – nullpotent

+0

Я слышал, что вам нужно использовать строгий режим для ES6 для работы в Chrome Canary – Bergi

+1

@iccthedral Действительно? Я использую Traceur прямо сейчас с большим успехом. Я бы не стал категоризировать его таким образом. Стандарт ES6 еще не ратифицирован, поэтому есть некоторые вещи, которые могут быть не окончательными, и Traceur не поддерживает ВСЕ ES6, но для того, что он поддерживает, у меня был действительно хороший опыт. С какими проблемами вы столкнулись? –

ответ

4

следующие работы в Chrome 37 (текущий Chrome) с флагом Экспериментальный JavaScript включен:

(function() { 
    "use strict"; 
    for (let i = 0; i < 10; i++) { 
     console.log(i); 
    } 
})() 

Если вы не находитесь в строгом режиме или, возможно, SyntaxError: Unexpected strict mode reserved word, если вы не указали SyntaxError: Illegal let declaration outside extended mode или SyntaxError: Unexpected identifier, если флажок Экспериментальный JavaScript не включен.

Вы также можете скомпилировать код с помощью Babel или с помощью Traceur and the --block-binding flag enabled.

См. kangax's ES6 compatibility table для получения дополнительной информации.

+0

Использование версии 40.0.2179.0 canary (64-bit) Я получаю «SyntaxError: Неожиданный идентификатор» Однако после включения «use strict» цикл выполнялся.Я думал, что «использовать строгое» было для ES5. Спасибо – Aaron

+0

Я ошибался в сообщении об ошибке - вероятно, это был старый, который был [scrapped] (http://stackoverflow.com/questions/17253509/what-is-extended-mode), и вы видите новый один. Я обновил ответ, чтобы это отразить. – lyschoening

1

Babel имеет инструмент для проверки трансляции и выполнения кода. Просто используйте его для тестирования, и в webapps очень вероятно, что вы будете использовать его для перевода на производственный код!

http://babeljs.io/repl

Babel tranpiler

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

  • Нет связанных вопросов^_^