Javascript versions

JavaScript was first released in 1995 and confirms to ECMAScript (ES) specification. ECMAScript version 1 was released in 1997 and since then there have been lot of revisions as mentioned below.

ES5 features - 2009

Here is the list of features added in ES5.
  • use strict directive - declare variables explicitly
  • String.trim() method added - used to remove white spaces from both ends of String
  • String.charAt() method added - used to get character at specific position in String
  • Lot of methods added to Array - isArray, foreach, map, filter, reduce, every sum, indexof, lastindexof
  • JSON object new methods - parse, stringify
  • Date.now() method added
  • Object related changes - getters and setters, adding new property to objects
  • Access String property using []
  • support for multiline string literals

ES6 features - 2015

Here is the list of features added in ES6.
  • let
  • const
  • Promises
  • ES6 modules - import and export syntax
  • Arrow function - similar to lambda in Java
  • Class syntax
  • Template literals
  • for ... of loop
  • Default parameters
  • New Array methods - find() and findIndex()
  • New Number methods - isFinite() and isNaN()
  • map, set, weakmap, weakset
  • Binary data
  • Typed Arrays
  • Iterators

ES7 features - 2016

Here is the list of features added in ES7.
  • Array.prototype.includes
  • Exponentiation - ** - similar to Math.Pow
  • Destructuring
  • async .. await

ES8 - 2017

  • Object.values, Object.entries and Object.getOwnPropertyDescriptors
  • Concurrency and atomics features
  • asyn ...await improvements

ES9 - 2018

  • spread operator and rest parameters - ...
  • Promise.prototype.finally

ES10 - 2019

  • Array.prototype.flat, Array.prototype.flatMap, Improvements in Array.sort and Object.fromEntries
  • Catch binding is optional

ES11 - 2020

  • BigInt - supports number larger than Number.MAX_SAFE_INTEGER
  • ?? - nullish coalescing operator - returns right hand side operand when left hand side operand is null or undefined. For false and NaN, it returns false and NaN itself unlike || operator.
  • globalThis object
  • optional chaining - ?.

ES12 - 2021

  • replaceAll method for strings
  • Promise.any
  • AggregateError
  • ??=, ||=
  • garbage collection improvements
  • Array.prototype.sort improvements

ES13 - 2022

  • Regular expression indexing improvements
  • at() method for indexable object
  • top level await
  • error.cause

ES.Next

  • Array.prototype.findLast() and Array.prototype.findLastIndex()

Web development and Automation testing

solutions delivered!!