Представяме ви новите функции, които ECMAScript 2016 (ES7) добавя към JavaScript

Откакто ECMAScript 2015 (известен също като ES6) беше пуснат, той въведе огромен набор от нови функции. Те включват функции със стрелки, набори, карти, класове и деструктуриране и много други. В много отношения ES2015 е почти като изучаването на нова версия на JavaScript.

Техническият комитет 39 на Ecma ръководи спецификацията на 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.