What browsers currently support JavaScript's 'let' keyword?
EDIT: let
and const
are supported by all modern browsers and are part of the ECMAScript 2015 (ES6) specification.
Basically if you don't need to support anything below IE11, let
and const
are safe to use nowadays.
On IE11 there's a small quirk with let
when used with for
loops, the variable is not bound to the for
block as you would expect, it behaves as var
did...
See also: let and const support.
Old and outdated answer from 2010: Those extensions are not ECMA-Standard, they are supported only by the Mozilla implementation.
On browser environments you should include the JavaScript version number in your script
tag to use it:
<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>
As of April 2017:
All up-to-date major browsers such as Chrome, Firefox, and Edge support the ES2015 (aka "ES6")
let
keyword.iOS Safari did not support
let
until OS 10 (e.g, OS 9 did not).Some older browsers, such as IE9-IE11, support an early version of
let
but don't support the semantics defined by ES2015 (particularly in relation to declarations in the headers offor
loops). So it's not a syntax error, and it does declare the variable, but it doesn't work the way it's supposed to. For instance, in a correct implementation, the following logs 0, 1, and 2; on IE9-IE11, it logs 3, 3, 3:for (let i = 0; i < 3; ++i) { setTimeout(function() { console.log(i); }, i * 100); }
Obsolete browsers such as IE8 do not support it at all.
There is partial support in Internet Explorer 11 (for
scope is incorrect) and full support in all current browsers (ECMAScript 6 compatibility table: let).