ECMAScript 2016 одобрен


Для вас это, вероятно, JavaScript 1.9 или ES7. Если вы озадачены названием, то это, вероятно, потому, что вы не осознали, что ECMAScript перешел на годовой график выпуска, что может быть совсем не очень хорошо.

Начнем с того, что нового в 2016 году — на самом деле не так много.

Есть две небольшие новые функции.

Теперь вы можете выполнять функциональное программирование, такое как поиск в массиве определенного элемента. Это вместо:

функция в (el, array) {for (x in array) {if (el === x) return true; }; return false;}

Теперь вы можете написать:

функция в (el, array) {return array.includes (el);}

То есть array.includes (el) истинно, если el является элементом массива. Конечно, вы могли бы сделать что-то подобное до использования indexOf:

функция в (el, array) {return (arr.indexOf (el)! == -1}

Однако включает в себя более выразительно того, что вы имеете в виду.

Есть также некоторые незначительные различия между indexOf и includes. Например, он будет соответствовать NaN и undefined.

Полезно, но вряд ли революция.

Вторая новая функция давно назрела, если вы пишете какую-либо программу для вычисления числовых чисел.

В JavaScript нет оператора «возведения в степень». Очень распространенная ошибка, совершаемая программистами, которые просто не могут поверить, что в языке нет экспоненциального оператора, — это написать x ^ 2 вместо x в квадрате. Может показаться, что это сработает, если вы не проверите результат, потому что оператор ^ является исключающим ИЛИ.

Правильный способ возвести в степень — использовать Math.pow (x, 2), который выглядит не очень хорошо и выглядит еще хуже, когда вы используете его в формуле, например:

z = Math.pow (x, 2) + Math.pow (y, 2);

Наконец-то теперь вы можете писать возведение в степень, используя старый оператор Fortran **, и формулы для него выглядят намного лучше:

г = х ** 2 + у ** 2;

Конечно, для малых степеней обычно лучше писать x * x вместо x в квадрате:

г = х * х + у * у;

Вот и все — подведены итоги ES 2016.

Приветствуются дополнения, но не так много, чтобы показать, что стоит год обсуждений.

Все дело, кажется, в том, что небольшие инкрементальные изменения являются новой нормой для JavaScript, вместо того, чтобы годами ждать мега-апгрейда, которого может даже не произойти. Это кажется разумным, но у него есть обратная сторона.

Теперь вам нужно беспокоиться, совместим ли ваш код с ES 2015 или 2016. Действительно ли стоит проблема поддержки движка JavaScript всего для двух небольших дополнений?

С большими изменениями вы можете принять сознательное решение писать на четком подмножестве языка, небольшие изменения означают, что вам нужно помнить о целом ряде вещей. Представьте себе, что через несколько лет вам нужно будет взглянуть на матрицу «могу ли я использовать» для ES2020.

Конечно, в идеальном мире все движки JavaScript обновятся, как только стандарт будет выпущен, и вы можете написать последний код и ожидать, что он будет работать где угодно.

Но мир не идеален.


Добавить комментарий