Browser geben keine echte Version, weil sie nicht genau eine Version unterstützen. Sie unterstützen einige (oder die meisten) Funktionen einiger Versionen.
Jede Unterstützung, die für "JavaScript 1.x" deklariert wird, ist nur a legacy hack for compatibility with Netscape.
In ähnlicher Weise sind diese navigator
Felder nutzlos absichtlich. In der Vergangenheit wurden sie missbraucht, um Browser so sehr zu blockieren, dass die Spezifikation jetzt recommends all browsers to lie and say they are Netscape 4.0.
Im Internet sollten Sie im Allgemeinen die Version von nichts überprüfen, um zu entscheiden, ob sie die von Ihnen benötigten Funktionen unterstützt, da es zu einfach ist, eine ungültige Annahme zu treffen und Ihren Code in einem Browser zu brechen, einschließlich zukünftiger t t test jetzt (z. B. eine Funktion möglicherweise nicht mit der Version, die Sie annehmen, oder Browser möglicherweise lügen über Versionen, die sie unterstützen, um Websites zu umgehen, die sie blockieren).
Sie sollten stattdessen feature detection verwenden.
Sie können das Vorhandensein einzelner JavaScript-Funktionen erkennen, indem Sie sie ausführen und prüfen, ob sie funktionieren. Wenn für die neue Funktion eine neue Syntax erforderlich ist, können Sie versuchen, diese Syntax innerhalb von eval
auszuführen. Sehen Sie, wie es gemacht wird: https://kangax.github.io/compat-table/es6/ (es gibt ein (c)
Icon mit Erkennungscode neben Funktionen, wenn Sie die Liste erweitern).
Bereits gefragt hier: http://stackoverflow.com/questions/4271566/how-do-i-know-which-version-of-javascript-im-using – exoslav
Was planen Sie zu tun, sobald Sie erkannt haben die Version, was auch immer das bedeutet? –
Ich möchte Warnung/Warnung für Benutzer anzeigen, wenn einige neue Funktionen der neuesten Javascript-Version nicht unterstützt werden aktuelle (alte) Version von Javascript im Client-Browser. @torazaburo –