javascript - ECMAScript 6 non funziona anche se JavaScript sperimentale è abilitato
Ho l'ultima versione di Chrome (45 e anche Chrome Canary che è alla versione 47), entrambe con il flag JavaScript Sperimentale abilitato. Voglio usare ECMAScript 6, ma non funziona. Non so perché. C'è qualche trucco o qualche altro flag che deve essere abilitato, anche?
Ogni parola riservata di ECMAScript 6 (come import, class o qualsiasi altra) genera un “Uncaught SyntaxError: Unexpected reserved word ” in Chrome 45 e un errore “Uncaught SyntaxError: Unexpected token import ” in Chrome Canary.
Ho chiesto questo qualche mese fa senza ottenere alcuna risposta, tranne un «possibile duplicato» di Usare ECMAScript 6, ma non risolve il mio problema.
Voglio usare i moduli, dato che mi piacciono più i moduli ECMAScript che usare require di CommonJS. E mi piace anche lo zucchero sintattico delle classi — il codice appare migliore.
Risposta n. 1
I moduli non sono ancora supportati nativamente in nessun browser. Dovrai usare un transpiler come Traceur o Babel. Dai un'occhiata a uno dei seguenti per aiutarti a iniziare:
- Scegli i moduli ES6 oggi!
- ES6 in profondità: Utilizzare ES6 oggi con Babel e Broccoli
- Scrivere ES6 lato client con webpack
Per quanto riguarda le classi, potresti essere in grado di usarle nativamente senza dover passare attraverso un transpiler. Puoi controllare la tabella di compatibilità qui per vedere quali browser supportano le classi nativamente oggi:
https://kangax.github.io/compat-table/es6/
Al momento, puoi vedere che la maggior parte dei browser non supporta ancora le classi in modo nativo. Tuttavia, se stai usando Babel o Traceur, questo non dovrebbe essere un problema.
Risposta n. 2
Aggiungi type="module" al tag script. Questo dovrebbe risolvere il tuo problema.