ECMAScript 2016
A convenção de nomenclatura JavaScript começou com ES1, ES2, ES3, ES5 e ES6.
Mas, ECMAScript 2016 e 2017 não foi chamado de ES7 e ES8.
Desde 2016, as novas versões são nomeadas por ano (ECMAScript 2016/2017/2018).
Novos recursos no ECMAScript 2016
Este capítulo apresenta os novos recursos do ECMAScript 2016:
- Exponenciação JavaScript (**)
- Atribuição de exponenciação JavaScript (**=)
- Matriz JavaScript.prototype.includes
Operador de exponenciação
O operador de exponenciação**
( ) eleva o primeiro operando à potência do segundo operando.
Exemplo
let x = 5;
let z = x ** 2; // result is 25
x ** y
produz o mesmo resultado que Math.pow(x, y)
:
Exemplo
let x = 5;
let z = Math.pow(x,2); // result is 25
Atribuição de exponenciação
O operador de atribuição de exponenciação**=
( ) eleva o valor de uma variável à potência do operando à direita.
Exemplo
let x = 5;
x **= 2; // result 25
O Chrome 52 e o Edge 14 foram os primeiros navegadores a oferecer suporte total ao Operador de Exponenciação:
Chrome 52 | Edge 14 | Firefox 52 | Safari 10.1 | Opera 39 |
Jul 2016 | Aug 2016 | Mar 2017 | Mar 2017 | Aug 2016 |
Matriz JavaScript.includes()
ECMAScript 2016 introduzido Array.prototype.includes
em arrays. Isso nos permite verificar se um elemento está presente em um array:
Exemplo
const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.includes("Mango"); // is true
Todos os navegadores modernos suportam Array.prototype.includes:
Chrome 47 | Edge 14 | Firefox 43 | Safari 9 | Opera 34 |
Dec 2015 | Aug 2016 | Dec 2015 | Oct 2015 | Dec 2015 |