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

如何从脚本中确定执行环境WSH支持的JavaScript版本?对于不熟悉WSH的人来说,它以“原始” JavaScript脚本作为输入,即没有嵌入HTML嵌入脚本的<script>标记的JavaScript脚本。 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);

该代码为我提供了输出:



关键是您可以通过这种方式检索WSH版本(尽管我不了解WScript.BuildVersionScriptEngineBuildVersion的区别)。

有WSH版本1.0、2.0(也称为5.1),5.6、5.7、5.8和5.812 by the link。 СonsideringJScript版本与WSH相同(除了JScript 5.1用于WSH 2.0,也许-我没有找到任何证据-JScript 9.0用于WSH 5.812,因为JScript 9.0是IE 9引入的,而后来的WSH 5.812是Windows 10引入的) 。您可以通过link 1link 2找到 JavaScript JScript 版本对应关系。

基于此,我认为以下兼容性:

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)

关于javascript - 获取js执行环境的版本描述,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36520386/

10-09 09:27