Я разрабатываю приложение и никогда не должен волноваться о Internet Explorer, и изучал некоторые функции, существующие в + браузеры класса, которые не находятся в Интернете Explorer1.
Одной из этих функций, с которыми я хотел играть вокруг, является ключевое слово JavaScript, которому позволяют,
Я, может казаться, не заставляю ни одного из их примеров, которым 'позволяют', работать в Firefox 3.6 (Строка агента пользователя: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-США; rv:1.9.2) Firefox/3.6 Геккона/20100115 (СБРОС.NET 3.5.30729)). Я добираюсь SyntaxError: missing ; before statement
при выполнении let foo = "bar"
.
Так, какие браузеры поддерживают ключевое слово, которому позволяют? (Или я делаю что-то не так?)
EDIT: let
и const
поддерживаются всеми современными браузерами и являются частью спецификации ECMAScript 2015 (ES6).
В принципе, если вам не нужно поддерживать ничего ниже IE11, let
и const
можно смело использовать в настоящее время.
В IE11 есть небольшая причуда с let
при использовании с for
циклами, переменная не привязывается к блоку for
, как вы ожидаете, она ведет себя как var
...
См. также: let и const поддержка.
Старый и устаревший ответ от 2010 года: Эти расширения не являются ECMA-Standard, они поддерживаются только реализацией Mozilla.
В браузерных средах вы должны включить номер версии JavaScript в тег script
, чтобы использовать его:
<script type="application/javascript;version=1.7">
var x = 5;
var y = 0;
let (x = x+10, y = 12) {
alert(x+y + "\n");
}
alert((x + y) + "\n");
</script>
Internet Explorer и Opera не поддерживают let
ни в одной версии браузера, Firefox с версии 2.0 и Safari с версии 3.2.
См. Эту таблицу версий JavaScript в Википедии.
Я только что узнал , что вам нужно определить, используете ли вы JavaScript 1.7 или нет. Итак, ваш код будет:
<script type="application/javascript;version=1.7"> ... </script>