This site is mobile accessible. Press the "Tap Here" button to use a different font-size.
Smartphone icons created by Freepik - Flaticon
9.1 JS Versions
- JavaScript was invented by Brendan Eich in 1995, and became an ECMA standard in 1997.
- ECMAScript is the official name of the language.
- ECMAScript versions have been abbreviated to ES1, ES2, ES3, ES5, and ES6.
- Since 2016, versions are named by year (ECMAScript 2016, 2017, 2018, 2019, 2020).
ECMAScript Editions
Ver |
Official Name |
Description |
ES1 |
ECMAScript 1 (1997) |
First edition |
ES2 |
ECMAScript 2 (1998) |
Editorial changes |
ES3 |
ECMAScript 3 (1999) |
Added regular expressions
Added try/catch
Added switch
Added do-while |
ES4 |
ECMAScript 4 |
Never released |
ES5 |
ECMAScript 5 (2009) |
Added "strict mode"
Added JSON support
Added String.trim()
Added Array.isArray()
Added Array iteration methods
Allows trailing commas for object literals |
ES6 |
ECMAScript 2015 |
Added let and const
Added default parameter values
Added Array.find()
Added Array.findIndex() |
|
ECMAScript 2016 |
Added exponential operator (**)
Added Array.includes() |
|
ECMAScript 2017 |
Added string padding
Added Object.entries()
Added Object.values()
Added async functions
Added shared memory
Allows trailing commas for function parameters |
|
ECMAScript 2018 |
Added rest / spread properties
Added asynchronous iteration
Added Promise.finally()
Additions to RegExp |
|
ECMAScript 2019 |
String.trimStart()
String.trimEnd()
Array.flat()
Object.fromEntries
Optional catch binding |
|
ECMAScript 2020 |
The Nullish Coalescing Operator (??) |
- This tutorial covers every version of JavaScript:
- The Original JavaScript ES1 ES2 ES3 (1997-1999)
- The First Main Revision ES5 (2009)
- The Second Revision ES6 (2015)
- Yearly Additions (2016, 2017, 2018, 2019, 2020)
Browser Support
ECMAScript 1 - 6 is fully supported in all modern browsers.
Browser Support for ES5 (2009)
Browser |
Version |
From Date |
Chrome |
23 |
Nov 2012 |
Firefox |
21 |
May 2013 |
IE |
9* |
Mar 2011 |
IE / Edge |
10 |
Sep 2012 |
Safari |
6 |
Jul 2012 |
Opera |
15 |
Jul 2013 |
* Internet Explorer 9 does not support ECMAScript 5 "use strict".
Browser Support for ES6 (2015)
Browser |
Version |
Date |
Chrome |
51 |
May 2016 |
Firefox |
52 |
Mar 2017 |
Edge |
14 |
Aug 2016 |
Safari |
10 |
Sep 2016 |
Opera |
38 |
Jun 2016 |
Internet Explorer does not support ECMAScript 2015.
Browser Support for ECMAScript 2016
Browser |
Version |
Date |
Chrome |
52 |
Jul 2016 |
Firefox |
54 |
Jun 2017 |
Edge |
14 |
Aug 2016 |
Safari |
10.1 |
Mar 2017 |
Opera |
39 |
Aug 2016 |
JavaScript icons used in the buttons provided by ICONS8.COM. Smartphone icons created by Freepik - Flaticon
Example files created in this module:
JS Strings - String.trim()
JS Arrays - isArray()
JS Array.forEach()
JS Array.map()
JS Array.filter()
JS Array.reduce()
JS Array.reduceRight()
JS Array.every()
JS Array.some()
JS Array.indexOf()
JS Array.lastIndexOf()
JS JSON.stringify()
JS Date.now()
JS Getters and Setters part 1
JS Getters and Setters part 2
JS Getters and Setters part 3
JS New Object Property Methods part 1
JS New Object Property Methods part 2
JS New Object Property Methods part 3
JS Property Access on Strings part 1
JS Property Access on Strings part 2
JS Strings Over Multiple Lines part 1
JS Strings Over Multiple Lines part 2
JS let
JS const
JS Arrow Functions part 1
JS Arrow Functions part 2
JS For Of Loop - Looping over an Array
JS For Of Loop - Looping over a String
JS Classes - Using a Class
JS Promise - Using a Promise
JS Using JavaScript Symbol()
JS Functions Default Parameter Values
JS Functions - The Rest Parameter
JS Arrays - The find() Method
JS Arrays - The findIndex() Method
JS Number Object Properties - EPSILON
JS Number Object Properties - MIN_SAFE_INTEGER
JS Number Object Properties - MAX_SAFE_INTEGER
JS Numbers - The isInteger() Method
JS Numbers - The isSafeInteger() Method
JS Numbers - The isFinite() Method
JS Numbers - The isNaN() Method
JS Exponentiation Operator
JS Exponentiation Operator - Math.pow()
JS Exponentiation Assignment (**=)
JS Arrays - The includes() Method
JS Strings - The padStart() Method
JS Strings - The padEnd() Method
JS Object Methods - Object.entries() method
JS Object Methods - Object.values() method
JS Async Functions
JS Strings - The trimStart() Method
JS Strings - The trimEnd() Method
JS Objects - The fromEntries() Method
JS Arrays - The flat() Method
JS Arrays - The flatMap() Method
JS Stable Sort
JS JSON - Revised stringify()
JS Strings - Separator Symbols
JS Functions - The toString() Method
JS Numbers - Create a BigInt
JS Numbers - BigInt typeof
JS Strings - The matchAll() Method part 1
JS Strings - The matchAll() Method part 2
JS Strings - The matchAll() Method part 3
JS Operators - The ?? Operator
JS Operators - The ?. Operator
JS Strings - The replaceAll() Method part 1
JS Strings - The replaceAll() Method part 2
JS Numbers - Numeric Separator (_) part 1
JS Numbers - Numeric Separator (_) part 2
JS Numbers - Numeric Separator (_) part 3
JS Arrays - Array at()
JS Strings - The at() Method