JavaScript
| JavaScript | |
|---|---|
Official logo of TC39, the technical committee responsible for maintaining JavaScript | |
Screenshot of JavaScript source code | |
| Paradigms | Multi-paradigm: event-driven, functional, imperative, procedural, object-oriented |
| Family | ECMAScript |
| Designed by | Brendan Eich of Netscape first; then others contributed to ECMAScript standard |
| First appeared | 4 December 1995 |
| Stable release | |
| Preview release | |
| Typing discipline | Dynamic, weak, duck |
| Memory management | Garbage collected |
| Scope | Lexical |
| Filename extensions | .js • .mjs • .cjs |
| Website | ecma-international |
| Major implementations | |
| V8, JavaScriptCore, SpiderMonkey; Chakra (deprecated) | |
| Influenced by | |
| Java, Scheme, Self, AWK, HyperTalk | |
| Influenced | |
| ActionScript, ArkTS, AssemblyScript, CoffeeScript, Dart, Haxe, JS++, Opa, TypeScript | |
| |
JavaScript (JS) is a programming language and core technology of the Web, alongside HTML and CSS. Created by Brendan Eich in 1995, it is maintained by Ecma International's TC39 technical committee, with related Web APIs maintained by W3C and WHATWG. As of 2025, JavaScript is the most widely used programming language on GitHub. However, TypeScript, which is a version of JavaScript that is strict about types and is statically typed, overtook JavaScript on GitHub by August 2025.
Web browsers have a dedicated JavaScript engine that executes the client code. These engines are also utilized in some servers and a variety of apps. The most popular runtime system for non-browser usage is Node.js.
JavaScript is a high-level, often just-in-time–compiled language that conforms to the ECMAScript standard. It has dynamic typing, prototype-based object-orientation, and first-class functions. It is multi-paradigm, supporting event-driven, functional, and imperative programming styles. It has application programming interfaces (APIs) for working with text, dates, regular expressions, standard data structures, and the Document Object Model (DOM).
The ECMAScript standard does not include any input/output (I/O), such as networking, storage, or graphics facilities. In practice, the web browser or other runtime system provides JavaScript APIs for I/O.
Although Java and JavaScript are similar in name and syntax, the two languages are distinct and differ greatly in design.