JavaScript is a versatile, high-level programming language. It is the programming language in all browsers.and can be used for back-end programming with node.js. Use this tag for questions regarding vanilla JavaScript; optionally tagged with an ECMAScript version. If you are using a preprocessor such as TypeScript please tag with that too.
Overview
JavaScript is one of the most ubiquitous programming languages on the earth. It runs on virtually every OS, and a JS engine is included in virtually every mainstream web browser. Standalone JavaScript engines or interpreters are available as well, and there are also embedding frameworks used to allow JS in additional applications.
Notable Implementations
- Chakra (Microsoft JavaScript engine) / JScript (previous Microsoft engine) Used in the Universal App platform, Internet Explorer, and Windows Script Host.
- SpiderMonkey (Mozilla JavaScript engine) Used in Firefox and related browsers, Rhino, Gnome 3, and Adobe Acrobat.
- V8 (Google Chrome JavaScript engine) Used in Chrome, Chromium, Android, and Node.js.
- JavaScriptCore (Apple / Webkit engine) Used in Safari and IOS.
A more complete list can be found on Wikipedia.
JavaScript is often used in the browser where it is provided with the Document Object Model, which effectively acts as a set of global variables, methods, and namespaces. Other environments provide different global elements.
ECMAScript, JavaScript & JScript
People often use the term "JavaScript" informally. The language and term originated as a creation of Netscape.
ECMAScript was developed as a standardization of Netscape's JavaScript and Microsoft's independently-developed JScript. The canonical reference is The ECMA-262 Language Specification. While JavaScript and JScript aim to be compatible with ECMAScript, they also provide additional features not described in the ECMA specifications. Other implementations of ECMAScript also exist.
Most people today who use JavaScript probably don't sweat the differences; they do not distinguish it from ECMAScript.