What is ECMAScript? What is not?

💡 Quick Summary (TL;DR):
- ECMAScript (ES): The official specification/standard for scripting languages, maintained by ECMA International (under ECMA-262).
- JavaScript (JS): The most popular programming language implementation of the ECMAScript standard.
- Version Evolution: Since ES6 (ES2015), new features are released annually (ES2016 to ES2026+). Modern engines natively support up to ES2021+ features, reducing the need for heavy compilation tools like Babel except for legacy browser targets.
A JavaScript library on GitHub, a job posting from your dream company, or a tweet you see on Twitter—ECMAScript comes up in many places related to JavaScript. However, there is confusion even in "senior level" job postings about the concept. There are different uses and misconceptions about ECMAScript, which aims to standardize scripting languages and specifically JavaScript. Frankly, the idea of writing this article came from one of these postings.
You may see requirements like these in job postings:
- Extensive knowledge of JavaScript and ECMAScript
- ES5 and ES6 knowledge
- ES6+ knowledge (the weirdest, in my opinion)
- ES.Next knowledge (and the most meaningful one)
The most Googled terms about ECMAScript also clearly show a misunderstanding about the concept:
- ECMAScript vs. JavaScript
- What is ECMAScript?
- Difference between ECMAScript and JavaScript
- Learn ECMAScript
Let's answer the questions below to clarify the topic.
ECMAScript vs. JavaScript
| Feature | ECMAScript | JavaScript |
|---|---|---|
| What is it? | A standardized specification (a set of rules). | A fully-featured programming language. |
| Governing Body | ECMA International (TC39 Committee). | The Mozilla Foundation and browser vendors. |
| Execution | It cannot be run directly; it is just a blueprint. | Executed by JS Engines (V8, JavaScriptCore, SpiderMonkey). |
| Host APIs | Excludes host-specific features (no DOM, no file system). | Includes host APIs depending on environment (DOM in browsers, fs in Node.js). |
What is ECMA International?
ECMA, with its full name "European Computer Manufacturers Association", is a non-profit association. ECMA publishes standards on information and communication technologies and is not just about ECMAScript.
What is ECMAScript?
There are many standards published by ECMA International. The ECMAScript standard is regulated by ECMA-262, which is one of these standards. ECMAScript is a general-purpose standard for scripting languages.
What is the difference between ECMAScript and JavaScript?
ECMAScript is a specification. JavaScript is a programming language that conforms to this specification.
Saying "I know JavaScript but not ECMAScript" is not meaningful. If you were trying to develop a new scripting language from scratch, you would need to study the ECMAScript specification document page-by-page. Otherwise, you don't need to read the specification to be a successful JavaScript developer. However, since JavaScript is compatible with the standard, knowing its evolving features helps you write cleaner code.
ES5, ES6, ES7 ... What are all of these numbers?
ECMAScript is revised and updated every year, meaning a new version is published annually (e.g., ES2024, ES2025, and ES2026). There are no two completely different standards like ES14 and ES15; rather, ES15 is simply the revised version of ES14 built on top of it.
- If "ES8+" is specified in a repository: It means that a JavaScript engine supporting ES8 (ES2017) and later can run the code without using any converters.
- A requirement of "ES8+ knowledge": This is not a reasonable requirement. It would make sense if they said "knowledge of ES8 features" (like async/await), but there is no distinct body of knowledge called "ES8+". I assume they are trying to refer to the latest version, which is ES.Next.
Is ES6 Enough?
Some job postings only require ES6 experience. If we take that literally, it would mean we wouldn't need to know the async/await functions of ES8, the dynamic import features of ES10, the Promise.allSettled methods of ES11, or the Object.groupBy features of ES15. Yet, we would still theoretically qualify as the "Senior JavaScript Developer" described in the posting. In reality, modern developers are expected to keep up with the yearly increments.
Does ECMAScript compliant code work in any environment?
The compatibility landscape has changed dramatically. ES6 (released in 2015) is now natively supported by virtually 100% of modern browsers and Node.js environments. Even features from ES2020 and ES2021 have near-universal native support.
You only need to compile your code if:
- You are targeting extremely ancient platforms (like Internet Explorer, which is now deprecated).
- You are using cutting-edge, experimental proposals (ES.Next) that have not yet been finalized by the TC39 committee or implemented natively by browser engines.
To solve compatibility for legacy environments, developers use transpilers:
- Babel: A tool that converts ECMAScript 2015+ code into an ES5-compatible version.
- SWC & esbuild: Modern, ultra-fast rust/go-based transpilers and build tools that have largely replaced Babel in modern build systems (like Vite).
Using these tools as plugins in your bundlers ensures that your modern JavaScript code compiles safely for older runtimes.
