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 asynchronous 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.
instancia
let str = "5"; str = str.padStart(4,0); // Result is: 0005
instancia
let str = "5"; str = str.padEnd(4,0); // El resultado es: 5000
Internet Explorer no soporta el relleno de cadenas.
Firefox y Safari fueron los primeros navegadores en soportar el relleno de cadenas de JavaScript:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Marzo de 2017 | Abril de 2017 | agosto de 2016 | septiembre de 2016 | Marzo de 2017 |
entradas de objetos JavaScript
ECMAScript 2017 añadió nuevas Object.entries
método.
Object.entries() devuelve un array de pares clave/valor del objeto:
instancia
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = Object.entries(person);
Object.entries() simplifica el uso de objetos en bucles:
instancia
const fruits = {Bananas:300, Oranges:200, Apples:500}; let text = ""; for (let [fruta, valor] of Object.entries(fruits)) { text += fruta + ": " + valor + " "; }
Object.entries() facilita la conversión de un objeto a un mapa:
instancia
const fruits = {Bananas:300, Oranges:200, Apples:500}; const myMap = new Map(Object.entries(fruits));
Chrome y Firefox fueron los primeros en soportar Object.entries
del navegador:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
junio de 2016 | agosto de 2016 | junio de 2016 | Marzo de 2017 | Octubre de 2016 |
valores de objetos JavaScript
Object.values
similares Object.entries
pero devuelve un array unidimensional de valores de objeto:
instancia
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = Object.values(person);
Firefox y Chrome fueron los primeros en soportar Object.values
del navegador:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Octubre de 2016 | agosto de 2016 | junio de 2016 | Marzo de 2017 | Octubre de 2016 |
Funciones Async de JavaScript
Tiempo de espera
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 y Chrome son los primeros navegadores en soportar funciones JavaScript asincrónicas:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Diciembre de 2016 | Abril de 2017 | Marzo de 2017 | Septiembre de 2017 | Diciembre de 2016 |