Quali browser attualmente supportano la parola chiave “let” di JavaScript?

Sto sviluppando un’applicazione e non devo mai preoccuparmi di Internet Explorer e stavo esaminando alcune delle funzionalità presenti nei browser di qualità A + che non sono in Internet Explorer1.

Una di queste funzionalità con cui ho voluto giocare è la parola chiave let di JavaScript

Non riesco a ottenere nessuno dei loro esempi “let” per funzionare in Firefox 3.6 (Stringa utente-agente : 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)). Ottengo SyntaxError: missing ; before statement SyntaxError: missing ; before statement quando si esegue, let foo = "bar" .

Quindi, quali browser supportano la parola chiave let? (O sto facendo qualcosa di sbagliato?)

Queste estensioni non sono conformi allo standard ECMA, sono supportate solo dall’implementazione di Mozilla.

Sugli ambienti del browser è necessario includere il numero di versione JavaScript nel tag dello script per utilizzarlo:

  

Esiste un supporto quasi completo in Internet Explorer ≥ 11 (manca solo for ambito) e supporto completo in tutti i browser correnti ( tabella di compatibilità ECMAScript 6: let ).

A partire da aprile 2017:

  • Tutti i principali browser aggiornati come Chrome, Firefox e Edge supportano ES2015 (detto anche “ES6”).

  • iOS Safari non supportava fino a OS 10 (ad esempio, OS 9 non).

  • Alcuni browser più vecchi, come IE9-IE11, supportano una versione iniziale di let ma non supportano la semantica definita da ES2015 (in particolare in relazione alle dichiarazioni nelle intestazioni di loop for ). Quindi non è un errore di syntax e dichiara la variabile, ma non funziona come dovrebbe. Ad esempio, in un’implementazione corretta, i seguenti registri 0, 1 e 2; su IE9-IE11, registra 3, 3, 3:

      for (let i = 0; i < 3; ++i) { setTimeout(function() { console.log(i); }, i * 100); } 

Internet Explorer e Opera non supportano nessuna versione del browser, Firefox dalla versione 2.0 e Safari dal 3.2.

Vedi questa tabella delle versioni JavaScript su Wikipedia.

Ho appena scoperto che è necessario definire se si utilizza JavaScript 1.7 o no. Quindi il tuo codice sarà:

  

Apparentemente Internet Explorer 10 in modalità Edge supporta let , per le informazioni sulla versione di JavaScript .

Solo un aggiornamento: Chrome ora supporta let ma solo se dichiari "use strict" ; direttiva.

È passato molto tempo da quando è stata posta questa domanda: le parole chiave “let” e “const” sono state introdotte in ECMAScript 2015 (ES6). Cerca “let” o “const” in questa fantastica tabella di compatibilità ES6: https://kangax.github.io/compat-table/es6/