Presentamos las nuevas funciones que ECMAScript 2016 (ES7) agrega a JavaScript

Desde que se lanzó ECMAScript 2015 (también conocido como ES6), ha introducido un gran conjunto de nuevas funciones. 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 gobierna 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 importantes como ES6.

ECMAScript 2016 introdujo solo dos características nuevas:

  • Array.prototype.includes ()
  • Operador de exponenciación

Array.prototype.includes ()

Array.prototype.includes()comprueba la matriz para el valuepasado como argument. Devuelve truesi la matriz contiene el value, de lo contrario, devuelve false.

Antes, necesitábamos usar Array.prototype.indexOf()para verificar si la matriz dada contiene un elemento o no.

let numbers = [1, 2, 3, 4];
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 NaNmejor que Array.prototype.indexOf(). Si la matriz contiene NaN, indexOf()no devuelve un índice correcto durante la búsqueda NaN.

Array.prototype.includes()devuelve el valor correcto al buscar NaN.

NaNes una propiedad del objeto global de JavaScript y representa un valor que es Not-a-Number. Hay peculiaridades conocidas cuando se compara NaNcon otro valor. Estos se tratan en Array.prototype.includes(), pero no en Array.protoype.indexOf.

let numbers = [1, 2, 3, 4, NaN];
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 brindan 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, SharedArrayBuffery algunos métodos útiles para Object.prototype.