Представляем новые функции, которые 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.