Какие браузеры в настоящее время поддерживают ключевое слово JavaScript 'let'?
Я разрабатываю приложение и никогда не должен беспокоиться о Internet Explorer и изучал некоторые функции, присутствующие в браузерах класса A+, которые не находятся в Internet Explorer1.
одна из этих функций я хотел поиграть с Ключевое слово JavaScript let
Я не могу заставить ни один из их примеров " let " работать в Firefox 3.6 (User-Agent строка: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.9.2) Gecko / 20100115 Firefox / 3.6 (.NET CLR 3.5.30729)). Я получаю SyntaxError: missing ; before statement
при выполнении let foo = "bar"
.
Итак, какие браузеры поддерживают ключевое слово let? (Или я делаю что-то не так?)
7 ответов:
эти расширения не являются стандартными для ECMA, они поддерживаются только реализацией 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 ≥ 11 (отсутствует только
for
scope) и полная поддержка во всех текущих браузерах ( Таблица совместимости ECMAScript 6: let).
по состоянию на апрель 2017:
все современные основные браузеры, такие как Chrome, Firefox и Edge поддерживают ES2015 (он же "ES6")
let
ключевое слово.iOS Safari не поддерживает
let
до ОС 10 (например, ОС 9 не сделал).некоторые старые браузеры, такие как IE9-IE11, поддерживают раннюю версию
let
но не поддержка семантики, определенной ES2015 (особенно в отношении деклараций в заголовкахfor
петли). Таким образом, это не синтаксическая ошибка, и она объявляет переменную, но она не работает так, как должна. Например, в правильной реализации следующие журналы 0, 1 и 2; на IE9-IE11 он регистрирует 3, 3, 3:for (let i = 0; i < 3; ++i) { setTimeout(function() { console.log(i); }, i * 100); }
устаревшие браузеры, такие как IE8 не поддерживают его вообще.
Internet Explorer и Опера не поддерживают
let
в любой версии браузера, Firefox с версии 2.0 и Safari с версии 3.2.посмотреть этот таблица версий JavaScript на Википедии.
Я только что узнал что вам нужно определить, используете ли вы JavaScript 1.7 или нет. Так что ваш код будет:
<script type="application/javascript;version=1.7"> ... </script>
видимо Internet Explorer 10 на края режим поддерживает
let
на Информация О Версии JavaScript.
просто обновление: Chrome теперь поддерживает
let
но только если вы объявляете"use strict"
; директивы.
прошло много времени с тех пор, как этот вопрос был впервые задан: ключевые слова " let " и "const" были введены в ECMAScript 2015 (ES6). Поиск 'let' или 'const' в этой удивительной таблице совместимости ES6: https://kangax.github.io/compat-table/es6/