Ich bin neugierig zu verstehen/herauszufinden, wenn die ECMAScript-6-Änderungen an den alten Browsern funktionieren oder nicht.EcmaScript-6 Abwärtskompatibilität
Warum ich diese Frage bin gefragt ist:
Ich erinnere mich an die Einführung von 'use strict';
in ECMAScript-5 wurde für die Kompatibilität mit den alten Versionen gemeint.
Das bedeutet, dass die alten Browser weiterhin gut funktionieren und sie ignorieren sie einfach, wenn sie die Anweisung 'use strict';
beim Parsen des neuen JavaScript-Codes treffen.
Und die neuen JS-Engines behandeln die Anweisung 'use strict';
in einer speziellen Weise wie hier beschrieben Strict mode.
Also, auf die Frage kommende
ich bezweifle ernsthaft, und neugierig, wie würde die ECMAScript-5 kompatibele Browser verhalten, wenn sie den ECMAScript-6-Code analysieren werden.
Der Grund für meine Zweifel ist, dass ECMAScript-6 neue Features Syntaxänderung/Updates beinhalten. Und der alte Browser, die neue Syntax-ahnungslos-Motoren sind, wird zu werfen Fehler beginnen, wenn sie begegnen eines der neuen Syntax aus den folgenden
yield[*], Map, Set, WeakMap, function* foo(){}, =>, for...of etc.
Meine Sorge ist, hat die Entscheidung/Aufnahme neuer Funktionen in ECMAScript-6 auf die Unterstützung der alten Browser ohne jeden Code-Bruch geachtet?
Wenn ja dann wie?
Wenn nicht dann, was soll ich meinen alt-Browser-Benutzer glücklich zu halten tun?
Ich sehe eine Lösung, um die Benutzer mit alten Browsern glücklich zu halten, indem Sie einige transpiler wie traceur-compiler in meinem Projekt enthalten. Dies wird meinen ECMAScript-6-Code in ECMAScript-5-Äquivalent konvertieren. Aber habe ich eine andere Lösung, um meine Alt-Browser-Benutzer glücklich zu halten?
Viele ES6-Funktionen sind nicht abwärtskompatibel und funktionieren nur in einer ES6-JS-Engine. Wenn Ihr Code in einem Browser ausgeführt wird, funktioniert er entweder nur in den neuesten Browsern oder Sie müssen warten, bis die gesamte Support-Basis Ihres Browsers bis ES6 reicht (in Jahren). Wenn Ihr Code in einer Datei wie node.js ausgeführt wird oder ein Plug-in für eine bestimmte Version eines bestimmten Browsers ist, haben Sie eine bessere Kontrolle über die JS-Engine und können die ES6-Funktionen wahrscheinlich früher verwenden. Der unterschiedliche Zweck von '" use strict ";' ist konsistenter mit Rückwärtskompatibilität. – jfriend00
Das ist traurig, aber scheint wahr :(Sie können den Kommentar als Ihre Antwort als auch .... – dopeddude
Karte, Set und WeakMap kann polyfilled sein, und wenn Sie die neue Syntax vermeiden können, es6 Code wird auf es5 .. – dandavis