获取js执行环境的版本说明

Get version description of js execution environment

我 运行 javascript 在 Windows 脚本宿主中,因此不涉及浏览器。

如何从脚本中识别其执行环境 WSH 支持的 JavaScript 版本?对于那些不熟悉 WSH 的人来说,它需要一个 "raw" JavaScript 脚本作为输入,即一个没有周围 <script> 标签的脚本,就像 HTML 嵌入的脚本一样。 Afaik WSH 将脚本直接传递给其注册的 javascript 引擎 (JScript.Dll) 执行,根本不涉及浏览器。

谷歌搜索似乎只能找到假定脚本在浏览器中执行的方法,而在 WSH 中执行的脚本并非如此。

查看以下示例中的一些 WSH 内置属性:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = '';
s = s + 'WScript.Version = ' + WScript.Version + '\n';
s = s + 'WScript.BuildVersion = ' + WScript.BuildVersion + '\n';
s = s + 'ScriptEngineMajorVersion = ' + ScriptEngineMajorVersion() + '\n';
s = s + 'ScriptEngineMinorVersion = ' + ScriptEngineMinorVersion() + '\n';
s = s + 'ScriptEngineBuildVersion = ' + ScriptEngineBuildVersion() + '\n';
s = s + WScript.FullName + ' version = ' + fso.GetFileVersion(WScript.FullName) + '\n';
WScript.Echo(s);

代码为我提供了输出:

WScript.Version = 5.8
WScript.BuildVersion = 18283
ScriptEngineMajorVersion = 5
ScriptEngineMinorVersion = 8
ScriptEngineBuildVersion = 18231
C:\Windows\System32\WScript.exe version = 5.8.7601.18283

重点是您可以通过这种方式检索 WSH 版本(尽管我不知道 WScript.BuildVersionScriptEngineBuildVersion 的区别)。

有 WSH 版本 1.0、2.0(也称为 5.1)、5.6、5.7、5.8 和 5.812 by the link. Сonsidering JScript version is the same as WSH (except JScript 5.1 is for WSH 2.0, and perhaps - I haven't found any proof - JScript 9.0 is for WSH 5.812, since JScript 9.0 introduced with IE 9 and later WSH 5.812 with Windows 10). You can find JavaScript and JScript versions correspondence by the link 1 and link 2

基于此我假设以下兼容性:

WSH        JavaScript

1.0        1.0
2.0        1.4
5.5-5.8    1.5
5.812      1.8.1 (needs to be checked)