
З моменту випуску 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
.