ECMAScript

ECMAScript (или ES) - это спецификация языка сценариев, стандартизированная Ecma International в ECMA-262 и ISO / IEC 16262. Она была создана для стандартизации JavaScript, чтобы способствовать развитию нескольких независимых реализаций. JavaScript остается самой известной реализацией ECMAScript с момента первой публикации стандарта, наряду с другими хорошо известными реализациями, включая JScript и ActionScript. ECMAScript обычно используется для написания сценариев на стороне клиента во всемирной паутине и все чаще используется для написания серверных приложений и служб с использованием Node.js.

ECMAScript 2015 (ES6)

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

Технический комитет Ecma 39 регулирует спецификацию ECMA. Они решили выпускать новую версию ECMAScript каждый год, начиная с 2015 года. Ежегодное обновление означает, что больше не будет крупных выпусков, таких как ES6.

Возможности ECMAScript 2016 (ES7)

После выпуска ES6 большинство из нас путается между выпуском функций в ES6 и ES6 + (ES7,8,9,10,11). Итак, в этой статье мы рассмотрим функции, выпущенные в ES7.

ECMAScript 2016 представил только две новые функции:

  • Array.prototype.includes ()
  • Оператор возведения в степень

Array.prototype.includes ()

Array.prototype.includes() проверяет, содержится ли в массиве значение, переданное в качестве аргумента. Он возвращает true, если значение содержится в массиве. В противном случае возвращается false.

До ES7 мы использовали Array.prototype.indexOf(), чтобы проверить, что массив содержит элемент

let fruits = ["apple", "orange", "banana"]
if(fruits.indexOf("apple") !==-1){
console.log("Array contains the element")
}
Output:
Array contains the element

После ES7 мы можем написать что-то вроде:

let fruits = ["apple", "orange", "banana"]
if(fruits.includes("apple")){
console.log("Array contains the element")
}
Output:
Array contains the element

Использование метода includes() для проверки NaN

let array = [NaN]; 
if (array.includes(NaN)){
console.log("true. NAN is found in the array"); 
}else{
console.log("NaN not found in the array");
}
Output:
true. NAN is found in the array

Здесь с indexOf() методом все начинает разваливаться. indexOf() не работает с NaN

let array = [NaN]; 
if (array.indexOf(NaN) !== -1){ 
console.log("true. NAN is found in the array");
}else{
console.log("NaN not found in the array");
}
Output:
NaN not found in the array

Использование метода includes() для проверки undefined

let array = [, , , ,]; 
if(array.includes(undefined)){
console.log("true array elements has undefined");
}else{
console.log("Sorry can't find undefined");
}
Output:
true array elements has undefined

Посмотрим, как indexOf() метод справится с этой операцией.

let array = [, , , ,]; 
if(!array.indexOf(undefined) !== -1 ){ 
console.log("true. array elements has undefined"); 
}
else { 
console.log("Sorry can't find undefined");
}
Output:
Sorry can't find undefined

Метод includes() не различает -0 и +0

const a = [-0].includes(+0);
console.log(a);
Output:
true

Оператор возведения в степень

JavaScript уже поддерживает многие арифметические операторы, такие как +, -, * и другие.

В ECMAScript 2016 появился оператор возведения в степень **.

Он имеет ту же цель, что и Math.pow(). Он возвращает первый аргумент в степени второго аргумента.

let baseValue = 2;
let exponentValue = 5;
let result = baseValue**exponentValue;
console.log(result); 
Output:
32