JScript is ECMAScript 5 (ES5) compliant as far as I know, modern Javascript is ES6+ It makes sense to specifically look into ES5 vs ES6+ differences to better understand why specific things don't work in JScript and at the same time, what would still work.
JScript on Windows throws in some additional objects and methods to get access to OS, filesystem, WMI etc (like WSH.Echo() method). It's the same for JScript/Javascript in a browser, the browser will also add additional functionality to the language to gain access to the actual website, requests, cookies etc. (like console.warn() method). Another example: DOpus adds DOpus.Output() method to the script context to make console output available within the application.
Javascript itself cannot interact with anything (OS, browser, etc.), so it's important to understand what is core Javascript (native objects and methods), what are the differences between Javascript iterations (ES5, ES6) etc. and what objects and methods are added to the Javascript context by the surrounding environment to allow interaction with it.
If you know you are running a ES5 interpreter (like JScript) and know it's syntax restrictions and you know you are not running in a browser, not running via Window's cscript.exe, but you know you are within DOs script context, it is quite clear what functionality is available, what syntax works and which things will never work.
Using "let myVar = console.warn('hello')" will never work in a DO-JScript script, since "let" is a ES6 keyword and "console" object is not present in DOs context.
Simple JScript things are easy to be tried out with "cscript.exe MYFILE.js". This works on every windows since Windows2000, I use it a lot to tinker with snippets and quickly trying scripting foo, which is to be used in DO or other JScript based environments.
When using internet search, it is a wise idea to exclude "javascript" hits from your search for JScript related things (by adding a minus to one or more search terms).
"JScript find index of character in string -javascript" is what your search with Google should look lie, to not end up in trillions of NodeJS and current browser related ES6 scripting examples, which still might work, but often are not compatbile with ES5/JScript.
If there is a method on a native Javascript ES6 object which does not exist in ES5-JScript (like Array.map(), which is ES6+ only), you can search for a "array map polyfill". Polyfills are pieces of Javascript, which can add functionality (methods, objects etc.) to your context, even though it is not available by default. You can run many ES6 based code on a ES5 engine, if you have added the polyfills to your code. This works for objects and methods only, it does not work if you try to "back-port" native language syntax or keywords like "let". It will always be "var"-only in ES5/JScript, since there is no polyfill-magic to extend the language itself, you can only extend objects with polyfills (add missing methods e.g.).
That said, editing ES6 "let" statements into JScript/ES5 "var" statements is quite easy, it will do in most cases, but there is code which requires "let" to be used, because it works differently than "var". Both statements declare variables, but when used in conjunction with "Closures" (look that up) it can make a huge difference to how your code works. If you know you need "let" in an ES5 engine, there is a solution, but this is advanced stuff for later. o)
That's all, I hope this helps to cut through the mist! o)