ECMAScript 2017
JavaScript Version Numbers
Old JS versions are named by numbers: ES5 (2009) and ES6 (2015).
From 2016, versions are named by year: ECMAScript 2016, 2017, 2018, 2019, ...
New Features in ECMAScript 2017
This chapter introduces the new features in ECMAScript 2017:
JavaScript String padding
JavaScript Object entries()
JavaScript Object values()
JavaScript async and await
JavaScript Object.getOwnPropertyDescriptors
JavaScript String Padding
ECMAScript 2017 added two string methods to JavaScript: padStart()
and padEnd() to support padding at the beginning and at the end of a string.
Examples
let text = "5";
text = text.padStart(4,0);
Try it Yourself »
let text = "5";
text = text.padEnd(4,0);
Try it Yourself »
JavaScript string padding is supported in all modern browsers since April 2017:
Chrome 57
Edge 15
Firefox 48
Safari 10
Opera 44
Mar 2017
Apr 2017
Aug 2016
Sep 2016
Mar 2017
JavaScript Object Entries
ECMAScript 2017 added the Object.entries() method to objects.
Object.entries() returns an array of the key/value pairs in an object:
Example
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
let text = Object.entries(person);
Try it Yourself »
Object.entries() makes it simple to use objects in loops:
Example
const fruits = {Bananas:300, Oranges:200, Apples:500};
let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "<br>";
}
Try it Yourself »
Object.entries() also makes it simple to convert objects to maps:
Example
const fruits = {Bananas:300, Oranges:200, Apples:500};
const myMap = new Map(Object.entries(fruits));
Try it Yourself »
Object.entries() is supported in all modern browsers since March 2017:
Chrome 47
Edge 14
Firefox 47
Safari 10.1
Opera 41
Jun 2016
Aug 2016
Jun 2016
Mar 2017
Oct 2016
JavaScript Object Values
Object.values() are similar to Object.entries(),
but returns a single dimension array of the object values:
Example
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
let text = Object.values(person);
Try it Yourself »
Object.values() is supported in all modern browsers since March 2017:
Chrome 54
Edge 14
Firefox 47
Safari 10.1
Opera 41
Oct 2016
Aug 2016
Jun 2016
Mar 2017
Oct 2016
JavaScript Async Functions
Waiting for a Timeout
async function myDisplay() {
let myPromise = new Promise(function(myResolve, myReject) {
setTimeout(function() { myResolve("I love You !!"); }, 3000);
});
document.getElementById("demo").innerHTML = await myPromise;}
myDisplay();
Try it Yourself »
Firefox and Chrome were the first browsers with support for async JavaScript functions:
Chrome 55
Edge 15
Firefox 52
Safari 11
Opera 42
Dec 2016
Apr 2017
Mar 2017
Sep 2017
Dec 2016
★
+1
Reference: https://www.w3schools.com/js/js_2017.asp