2015-08-14 2 views
2

Ну, на ES6 у нас есть определение области блока с оператором let. Это хорошо, и мы можем использовать его в современных браузерах.JavaScript: Как поддержать в старых браузерах?

Как насчет старых? Как его поддерживать? Например, IE8, IE9. Есть ли какой-то стандартный трюк для достижения этого?

+0

Используйте транспилер. Если вы хотите назвать это «трюком». – Bergi

ответ

2

использовать что-то вроде babel.js

Вавилонская компилятор JavaScript. Используйте JavaScript следующего поколения, сегодня.

Бабель будет «transpile» ваш ES6 к ES5 - вы, возможно, придется ограничить себя подмножество ES6 поддержки IE < 9, но от того, что я могу сказать, let ОК.

2

Вы можете увидеть текущую совместимость здесь: https://kangax.github.io/compat-table/es6/#let

Обратите внимание, что, как ни один браузер в настоящее время не поддерживает его, вы можете использовать polyfills или компилятор, как https://google.github.io/traceur-compiler

Из большинства случаев использования var будет хорошо. Кроме того, вам нужно будет замаскировать какое-то закрытие, чтобы имитировать его.

2

Области уровня блока в ES6 сильно изменяет способ интерпретации интерпретаторов и оценивает код. Невозможно полировать это поведение в более раннем браузере.

Единственное решением для использования ES6 функций является использование промежуточного языка, такими как Typescript который EcmaScript совместимых (вы можете использовать ES6 функции в нем, в том числе и letconst).

Затем вам необходимо скомпилировать код машинописного текста в код Javascript при создании приложения.

См. Также: What's new in Typescript 1.6

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