ECMAScript 2017
JavaScript naming conventions started with ES1, ES2, ES3, ES5, and ES6.
However, ECMAScript 2016 and 2017 were not called ES7 and ES8.
Since 2016, new versions have been named by year (ECMAScript 2016/2017/2018).
New Features in ECMAScript 2017
This chapter introduces the new features of ECMAScript 2017:
- JavaScript String Padding
- JavaScript Object.entries
- JavaScript Object.values
- JavaScript Async Functions
- JavaScript Shared Memory
JavaScript String Padding
ECMAScript 2017 added two new String methods:padStart
and padEnd
to support padding at the beginning and end of strings.
πρότυπο
let str = "5"; str = str.padStart(4,0); // The result is: 0005
πρότυπο
let str = "5"; str = str.padEnd(4,0); // Το αποτέλεσμα είναι: 5000
Internet Explorer δεν υποστηρίζει το string padding.
Firefox και Safari είναι οι πρώτοι που υποστηρίζουν τους περιηγητές JavaScript string padding:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Μάρτιος 2017 | Απρίλιος 2017 | 2016 Αύγουστος | 2016 Σεπτέμβριος | Μάρτιος 2017 |
εintrades αντικειμένων JavaScript
ECMAScript 2017 προσθέτει νέες Object.entries
μέθοδος.
Object.entries() μέθοδος επιστρέφει μια μαγίλα από τα ζευγάρια κλειδιού/τιμής του αντικειμένου:
πρότυπο
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = Object.entries(person);
Object.entries() καθιστά απλό τον κύκλο χρησιμοποιώντας αντικείμενα:
πρότυπο
const fruits = {Bananas:300, Oranges:200, Apples:500}; let text = ""; for (let [fruit, value] of Object.entries(fruits)) { text += fruit + ": " + value + " "; }
Object.entries() καθιστά απλό την μετατροπή αντικειμένων σε χάρτες:
πρότυπο
const fruits = {Bananas:300, Oranges:200, Apples:500}; const myMap = new Map(Object.entries(fruits));
Chrome και Firefox είναι οι πρώτοι που υποστηρίζουν Object.entries
των περιηγητών:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
2016 Μάιος | 2016 Αύγουστος | 2016 Μάιος | Μάρτιος 2017 | Οκτώβριος 2016 |
τιμές αντικειμένων JavaScript
Object.values
παρόμοια Object.entries
αλλά επιστρέφει μια μονοδιάστατη μαγίλα τιμών:
πρότυπο
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = Object.values(person);
Firefox και Chrome είναι οι πρώτοι που υποστηρίζουν Object.values
των περιηγητών:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Οκτώβριος 2016 | 2016 Αύγουστος | 2016 Μάιος | Μάρτιος 2017 | Οκτώβριος 2016 |
Ασύγχρονη λειτουργία JavaScript
Αναμονή υπερβολής χρόνου
async function myDisplay() { let myPromise = new Promise(function(myResolve, myReject) { setTimeout(function() { myResolve("I love You !!"); }, 3000); }); document.getElementById("demo").innerHTML = await myPromise; } myDisplay();
Το Firefox και το Chrome είναι οι πρώτοι περιηγητές που υποστηρίζουν τις ασύγχρονες λειτουργίες JavaScript:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Δεκέμβριος 2016 | Απρίλιος 2017 | Μάρτιος 2017 | Σεπτέμβριος 2017 | Δεκέμβριος 2016 |