Представляємо нові функції, які ECMAScript 2016 (ES7) додає до JavaScript

З моменту випуску ECMAScript 2015 (також відомого як ES6) він представив величезний набір нових функцій. Вони включають функції стрілок, набори, карти, класи та деструктуризацію та багато іншого. Багато в чому ES2015 майже схожий на вивчення нової версії JavaScript.

Технічний комітет Ecma 39 регулює специфікацію ECMA. Вони вирішили випускати нову версію ECMAScript щороку, починаючи з 2015 року. Щорічне оновлення означає більше не таких великих версій, як ES6.

ECMAScript 2016 представив лише дві нові функції:

  • Array.prototype.includes ()
  • Оператор степенування

Array.prototype.includes ()

Array.prototype.includes()перевіряє масив на valueпередану як argument. Він повертається, trueякщо масив містить value, інакше він повертається false.

Раніше нам потрібно було використовувати, Array.prototype.indexOf()щоб перевірити, чи містить даний масив елемент чи ні.

let numbers = [1, 2, 3, 4];
if(numbers.indexOf(2) !== -1) { console.log('Array contains value');}

За допомогою ECMA2016 ми можемо написати:

if(numbers.includes(2)) { console.log('Array contains value');}

Array.prototype.includes()обробляє NaNкраще, ніж Array.prototype.indexOf(). Якщо масив містить NaN, тоді indexOf()не повертає правильний індекс під час пошуку NaN.

Array.prototype.includes()повертає правильне значення під час пошуку NaN.

NaNє властивістю глобального об'єкта JavaScript і представляє значення, яке не є числом. Відомі примхи при порівнянні NaNз іншим значенням. Вони розглядаються в Array.prototype.includes(), але не в Array.protoype.indexOf.

let numbers = [1, 2, 3, 4, NaN];
console.log(numbers.indexOf(NaN)); //Prints -1console.log(numbers.includes(NaN)); //Prints true

Оператор піднесення ступенів

JavaScript вже підтримує багато арифметичних операторів, як +, -, *і багато іншого.

ECMAScript 2016 ввів оператор зведення в ступінь, **.

Він має те саме призначення, що і Math.pow(). Він повертає перший аргумент, піднятий у ступінь другого аргументу.

let base = 3;let exponent = 4;let result = base**exponent;
console.log(result); //81

Висновок

Нові функції, представлені ECMA2016, забезпечують зручні альтернативи існуючим функціоналам.

Забігаючи на майбутнє, ECMA2017 було завершено в червні цього року. Нові функції включають в себе async/await, SharedArrayBufferі деякі корисні методи до Object.prototype.