de Sanket Meghani
Desde que se lanzó ECMAScript 2015 (también conocido como ES6), ha introducido un gran conjunto de nuevas características. Incluyen funciones de flecha, conjuntos, mapas, clases y desestructuración, y mucho más. En muchos sentidos, ES2015 es casi como aprender una nueva versión de JavaScript.
El Comité Técnico 39 de Ecma rige la especificación ECMA. Decidieron lanzar una nueva versión de ECMAScript cada año a partir de 2015. Una actualización anual significa que no habrá más lanzamientos grandes como ES6.
ECMAScript 2016 introdujo solo dos características nuevas:
- Matriz.prototipo.incluye ()
- Operador de exponenciación
Array.prototipo.incluye()
Array.prototype.includes()
comprueba la matriz para el value
pasado como un argument
. Devuelve true
si el array contiene el value
, de lo contrario, devuelve false
.
Antes, necesitábamos usar Array.prototype.indexOf()
para comprobar si el array dado contiene un elemento o no.
let numbers = ;
if(numbers.indexOf(2) !== -1) { console.log('Array contains value');}
Con ECMA2016, podemos escribir:
if(numbers.includes(2)) { console.log('Array contains value');}
Array.prototype.includes()
maneja NaN
mejor que Array.prototype.indexOf()
. Si el array contiene NaN
, entonces indexOf()
no devuelve un índice correcto mientras busca NaN
.
Array.prototype.includes()
devuelve el valor correcto al buscar NaN
.
NaN
es una propiedad del objeto global de JavaScript y representa un valor que no es un Número. Existen peculiaridades conocidas al comparar NaN
con otro valor. Estos se abordan en Array.prototype.includes()
, pero no en Array.protoype.indexOf
.
let numbers = ;
console.log(numbers.indexOf(NaN)); //Prints -1console.log(numbers.includes(NaN)); //Prints true
Operador de exponenciación
JavaScript ya admite muchos operadores aritméticos como +, -, *
y más.
ECMAScript 2016 introdujo el operador de exponenciación, **
.
Tiene el mismo propósito que Math.pow()
. Devuelve el primer argumento elevado a la potencia del segundo argumento.
let base = 3;let exponent = 4;let result = base**exponent;
console.log(result); //81
Conclusión
Las nuevas características introducidas por ECMA2016 proporcionan alternativas convenientes a las funcionalidades existentes.
De cara al futuro, ECMA2017 se finalizó en junio de este año. Las nuevas características incluyen async/await
, SharedArrayBuffer
y algunos métodos útiles para Object.prototype
.