windowsscriptingwshjscript

JavaScript version used by the Windows Scripting Host


I have been using JavaScript in Windows Scripting, both in .JS files and .WSF files, for several years, but I have found that there are some methods that are not recognized when I put them in a script that is executed outside a web page that are valid in a script on a web page. I know that different browsers support different versions of JavaScript, and MSDN has a page that describes which functions and methods are supported in which Internet Explorer and Edge browser versions:

https://learn.microsoft.com/en-us/scripting/javascript/reference/javascript-version-information

but it does not say which methods are supported in Windows Scripting.

Does the version of JavaScript supported in Windows Scripting depend on the version of Windows, the version of Internet Explorer installed on the computer, or some other factor or combination of factors? Is there a way inside the JavaScript program to detect which version of JavaScript is being used as it is executed?


Solution

  • Its a common mistake to make but the Windows Scripting Host supports VBScript and Microsofts own JavaScript implementation called JScript based on the ECMAScript standard. In fact, it can support a number of scripting implementations through its support for Active Scripting languages.

    While it shares many similarities with JavaScript, they are not the same (yes, they came from the same place, but that doesn't mean they didn't diverge afterwards). When you use .js files outside of the internet browser (the only browser to support Active Scripting was early versions of Internet Explorer, pre Edge) they are executed using a host program, in this case the Windows Scripting Host. This also applies when using .wsf files.

    Edit: I've also updated the tag info as it states can be used, which is incorrect and why so much confusion arises around this topic.


    Useful Links