如何在网络浏览器中检查 JavaScript 版本?

Sum*_*ker 4 javascript browser

我想检查JavaScript Version我的网络浏览器。

navigatorObject是否返回正确的 JavaScript 版本?

navigator.appVersion;  /*Is it correct?*/
navigator.appCodeName;
navigator.appName;
Run Code Online (Sandbox Code Playgroud)

有什么方法可以准确地检测JavaScript VersionBrowser console或其他任何东西吗?

Kor*_*nel 6

浏览器不提供任何真实版本,因为它们不完全支持任何一个版本。它们支持某些版本的某些(或大部分)功能。

对“JavaScript 1.x”声明的任何支持都只是为了与 Netscape 兼容的遗留黑客

同样,这些navigator字段故意无用。过去,它们被滥用来阻止浏览器如此之多,以至于规范现在建议所有浏览器撒谎并说它们是 Netscape 4.0

在网络上,一般来说,你永远不应该检查任何东西的版本来决定它是否支持你需要的功能,因为在某些浏览器中做出无效假设并破坏你的代码太容易了,包括你现在无法测试的未来(例如,某项功能可能与您假设的版本无关,或者浏览器可能会谎报其支持的版本以绕过阻止它们的站点)。

您应该改用特征检测

您可以通过运行单个 JavaScript 功能并查看它们是否工作来检测它们是否存在。如果新功能需要新语法,您可以尝试在eval. 查看它是如何完成的:https : //kangax.github.io/compat-table/es6/(c)当您展开列表时,功能旁边有一个带有检测代码的图标)。

  • 在 Chromium 上 `chrome://version/` 给出 JS 引擎 (V8) 的名称和版本。Firefox 有没有办法显示 SpiderMonker 版本(“about:support”中没有任何内容)? (2认同)