ECMAScript 2017
La convención de nombres de JavaScript comenzó con ES1, ES2, ES3, ES5 y ES6.
Pero ECMAScript 2016 y 2017 no se llamaron ES7 y ES8.
Desde 2016, las nuevas versiones se nombran por año (ECMAScript 2016/2017/2018).
Nuevas características en ECMAScript 2017
Este capítulo presenta las nuevas funciones de ECMAScript 2017:
- Relleno de cadena de JavaScript
- Objeto JavaScript.entradas
- Objeto JavaScript.valores
- Funciones asíncronas de JavaScript
- memoria compartida JavaScript
Relleno de cadena de JavaScript
ECMAScript 2017 agregó dos métodos de cadena: padStart
y padEnd
para admitir el relleno al principio y al final de una cadena.
Ejemplo
let str = "5";
str = str.padStart(4,0);
// result is 0005
Ejemplo
let str = "5";
str = str.padEnd(4,0);
// result is 5000
El relleno de cadenas no es compatible con Internet Explorer.
Firefox y Safari fueron los primeros navegadores compatibles con el relleno de cadenas de JavaScript:
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Mar 2017 | Apr 2017 | Aug 2016 | Sep 2016 | Mar 2017 |
Entradas de objetos de JavaScript
ECMAScript 2017 agrega un nuevo Object.entries
método a los objetos.
El método Object.entries() devuelve una matriz de pares clave/valor en un objeto:
Ejemplo
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
Object.entries(person);
Object.entries() simplifica el uso de objetos en bucles:
Ejemplo
const fruits = {Bananas:300, Oranges:200, Apples:500};
let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "
";
}
Object.entries() también simplifica la conversión de objetos a mapas:
Ejemplo
const fruits = {Bananas:300, Oranges:200, Apples:500};
const myMap = new Map(Object.entries(fruits));
Chrome y Firefox fueron los primeros navegadores con soporte para
Object.entries
:
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Jun 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
Valores de objeto de JavaScript
Object.values
son similares a Object.entries
, pero devuelven una matriz de una sola dimensión de los valores del objeto:
Ejemplo
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
Object.values(person);
Firefox y Chrome fueron los primeros navegadores con soporte para
Object.values
:
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Oct 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
Funciones asíncronas de JavaScript
Esperando un 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 fueron los primeros navegadores con soporte para funciones JavaScript asíncronas:
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Dec 2016 | Apr 2017 | Mar 2017 | Sep 2017 | Dec 2016 |