por Sanket Meghani
Desde ECMAScript 2015 (também conhecido como ES6) foi lançado, ele introduziu um enorme conjunto de novas funcionalidades. Eles incluem funções de seta, conjuntos, mapas, classes e destruição, e muito mais. Em muitos aspectos, ES2015 é quase como aprender uma nova versão de JavaScript.
o Comité Técnico da Ecma 39 rege a especificação da ECMA. Eles decidiram lançar uma nova versão do ECMAScript todos os anos a partir de 2015. Uma atualização anual significa que não há mais grandes lançamentos como o ES6.
ECMAScript 2016 introduziu apenas duas novas funcionalidades:
- matriz.prototipo.inclui ()
- operador de exponenciação
Array.prototipo.inclui()
Array.prototype.includes()
verifica o array para o value
passado como um argument
. Ele retorna true
se o array contém o value
, caso contrário, ele retorna false
.
antes, precisávamos usar Array.prototype.indexOf()
para verificar se a matriz dada contém um elemento ou não.
let numbers = ;
if(numbers.indexOf(2) !== -1) { console.log('Array contains value');}
com o ECMA2016, podemos escrever:
if(numbers.includes(2)) { console.log('Array contains value');}
Array.prototype.includes()
cabos NaN
melhores que Array.prototype.indexOf()
. Se a matriz contém NaN
, então indexOf()
não retorna um índice correto enquanto procura por NaN
.
Array.prototype.includes()
devolve o valor correcto ao procurar por NaN
.
NaN
é uma propriedade do objeto global JavaScript e representa um valor que Não é um Número. Existem peculiaridades conhecidas ao comparar NaN
a outro valor. Estes são tratados em Array.prototype.includes()
, mas não em Array.protoype.indexOf
.
let numbers = ;
console.log(numbers.indexOf(NaN)); //Prints -1console.log(numbers.includes(NaN)); //Prints true
Operador de Exponenciação
JavaScript já suporta muitos operadores aritméticos como +, -, *
e mais.
ECMAScript 2016 introduziu o operador de exponenciação, **
.
tem a mesma finalidade que Math.pow()
. Retorna o primeiro argumento levantado ao poder do segundo argumento.
let base = 3;let exponent = 4;let result = base**exponent;
console.log(result); //81
conclusão
as novas características introduzidas pela ECMA2016 oferecem alternativas convenientes às funcionalidades existentes.
olhando para a frente, ECMA2017 foi finalizado em junho deste ano. Novas características incluem async/await
, SharedArrayBuffer
e alguns métodos úteis para Object.prototype
.