ES2015: Latest Version of JavaScript Last Updated : 21 May, 2024 Comments Improve Suggest changes Like Article Like Report ES2015 is the latest version of JavaScript programming language. It is the first major upgrade to JavaScript since 1997. It was approved in June 2015 by ECMA international, an association responsible for approving ECMA standards which programming languages like JavaScript, CoffeeScript and TypeScript follows. The name of this version of JavaScript has undergone multiple changes starting from Harmony to ES6 to ES2015. Before ES2015, ECMAScript was named after version numbers. It was only recently that it was decided that it will be named according to the year of release. Thus the name changed from ES6 to ES2015. Below is the list of major upgrades Block Scoping: JavaScript variable scoping along with concepts of variable hoisting has been confusing developers since long. Up until ES5, variables either have a global scope or a function level scope. The lack of block scoping was a real pain especially for people coming from other programming languages like C++/Java. With introduction of “let” and “const” keywords in ES2015, life is surely going to get a little bit easier for JavaScript programmers.Promises: Promises provide a mechanism to handle asynchronous calls. With ES2015, JavaScript has in-build mechanism to register and handle promisesArrow Functions: With the addition of arrow functions, programmers will have to type in fewer keystrokes to declare a function. Arrow functions will also help to remove the statement like “self = this” as arrow function passes the “this” variable of the caller function inside the called function.Modules: Till now, to load modules, developers had to depend on libraries like commonJS or requireJS. With ES2015, concept of modules makes its way into JavaScript with module loader mechanism.Classes: The explicit keyword ‘Class’ will definitely make it easier for people coming from any other Object oriented programming language.Additional String methods: Few convenience methods have been added to String prototype. Few of these areprototype.startsWith: This functions checks if the string starts with the characters of another string. Return value is either true or false.prototype.endsWith: This function checks if the string ends with the characters of another string. Return value is either true or false.prototype.includes: This function checks if a string is found within another strings. Return value is true or false.prototype.repeat: This function takes as an argument an integer value say i. It returns a string containing a string which contains the string repeated i times.Additional Array methods: Few more methods have been added to Array prototype along with new static class methods. Few of these arefrom: Create a new array from an array like or iterable object. It can also apply a map function to all the items of the array.of: Creates a new array with variable number of arguments regardless type or number of arguments.prototype.find: Find function takes in as an argument a callback function which is called for each element. If callback returns true for any element, that element is immediately returned. If callback doesn’t return true for any element, undefined is returned.prototype.findIndex: This function is similar to Array.prototype.find(). The only difference is that instead of returning the value, it returns the index of that value in the array.prototype.fill: Fill method fills all the elements of the array from start index to end index with a static value.Additional Math methods: Methods have been added to math object. These aresign: This function returns the sign of the number indicating whether it is a positive number, negative number or zero.trunc: This function returns integer part of the number by removing any fractional part.cbrt: This method return the cube root of the input number.Destructuring: With destructuring in place, multiple variables can be assigned values in one go.Parameters default values: Function parameters can now have default values. So if while calling user misses passing the value to the argument, the default value will be used. With this feature, initial input parameter validations can now be avoided in functions.Template Literals: String interpolation is now easy with the use of backticks. To place a variable in between a string, you no longer need to break the string and use ‘+’ operator to concatenate strings. Just place the variable between a $ and curly braces and you are done. Multiline strings are also allowed now inside backticks.As of now, browsers do not support all the features of ES2015, though eventually they will. Comment More infoAdvertise with us Next Article JS 2015 or ECMAScript 6 (ES6) H Harshit Jain Improve Article Tags : JavaScript Web Technologies JavaScript-ES Similar Reads JavaScript ES5 (JS 2009) JavaScript 2009 (ES5) refers to the fifth edition of the ECMAScript language specification, standardized in 2009. It introduced several features, like strict mode, new methods, JSON support, and improved syntax for better programming practices and compatibility across browsers. ECMAScript 5 (ES5) in 7 min read ES2015: Latest Version of JavaScript ES2015 is the latest version of JavaScript programming language. It is the first major upgrade to JavaScript since 1997. It was approved in June 2015 by ECMA international, an association responsible for approving ECMA standards which programming languages like JavaScript, CoffeeScript and TypeScrip 4 min read JS 2015 or ECMAScript 6 (ES6) JS 2015 (ES6) also known as ECMAScript 6 (ES6), ECMAScript 6 (ES6) is a significant update to JavaScript, introducing arrow functions, classes, template literals, let and const for variable declaration, enhanced object literals, destructuring, and more modern features for better code organization an 10 min read JS 2016 or ECMAScript 2016 JavaScript 2016 (ES2016) is a modified version of ES2015 in which they introduced some new features like JavaScript Exponentiation (**) operator, JavaScript Exponentiation assignment (**=), and Array..includes() method for array element presence checking, enhancing calculations, and array operations 2 min read JS 2017 - ECMAScript 2017 JavaScript (JS) 2017, or ECMAScript 2017, introduced some new features in JavaScript. It enhanced asynchronous programming with async functions, provided shared memory and atomics for improved concurrency, and introduced Object.values() and Object.entries() for streamlined object manipulation. These 3 min read JS 2018 - ECMAScript 2018 JavaScript 2018 (ES9) or ECMAScript 2018 is a modified version of ES8, in which ES9 introduced new features like asynchronous iteration, rest/spread properties, and enhancements to regular expressions, further improving asynchronous programming, object manipulation, and string handling capabilities. 4 min read JS 2019 - ECMAScript 2019 ECMAScript 2019, also known as ES10, introduced features like Array.flat(), Array.flatMap(), Object.fromEntries(), and Symbol. description, and some string methods, for enhancing JavaScript's capabilities and expressiveness. JavaScript 2019 (ES10) or ECMAScript 2019 new features are: Name Descriptio 5 min read JS 2020 - ECMAScript 2020 JavaScript ECMAScript 2020 (ES11) introduced new features like optional chaining, nullish coalescing, dynamic import(), BigInt, and Promise.allSettled(), etc. enhancing language capabilities for modern web development needs. JavaScript 2020 (ES11) or ECMAScript 2020 new features are: BigInttype for 5 min read ECMAScript 2021 (JS 2021/2022) JavaScript in 2021/2022 continues to evolve, with ES2021/ES2022 bringing enhanced features like private class fields, promise improvements, and record data structures, boosting developer productivity and code quality. JavaScript New Features in ES2021Name Description Promise any(): Resolves if any P 4 min read New Features in ECMAScript 2021 Update ECMAScript is a part of JavaScript language which is mostly used in web technology, building websites, or web apps. ECMAScript is growing as one of the world's most widely used general-purpose programming languages. It is majorly used in embedding with web browsers and is also adopted for server and 4 min read Like