Июн 17, 2016 - 0 Comments - Интересно -

Утверждён стандарт ECMAScript 7 (2016)

17.06.2016 10:30 Утверждён стандарт ECMAScript 7 (2016)

На очередном собрании Генеральной Ассамблеи ECMA официально утверждён стандарт ECMAScript 2016 (ECMAScript 7 или «ECMA-262 7th edition»), определяющий базовые функциональные возможности JavaScript. ECMAScript 7 примечателен переходом к новому непрерывному процессу формирования стандартов, которые планируется выпускать ежегодно. Напомним, что прошлый стандарт ECMAScript 6 был утверждён в июне прошлого года, спустя шесть лет с момента принятия ECMAScript 5, и содержал достаточно большую порцию новшеств, которые ещё не полностью реализованы в современных браузерах.

В отличие от ECMAScript 6 спецификация ECMAScript 7 содержит относительно немного изменений, которые развивались в рамках непрерывно обновляемого варианта спецификации ECMAScript Next. В стандарт из данной черновой спецификации были перенесены уже поддерживаемые браузерами возможности, поэтому ECMAScript 7 сразу доступен во всех основных браузерах и не требует дополнительного времени на реализацию.

В ECMAScript 7 вошли изменения, связанные с устранением недоработок и внесением уточнений к ECMAScript 6, а также добавлено несколько новшеств:

  • Оператор «**» для возведения в степень. Например, вместо «Math.pow(x, y)» теперь можно указать «x ** y»;
  • Методы Array.prototype.includes() и TypedArray.prototype.includes() для определения наличия элементов в массиве. Напрмер, «[1, 2, 3].includes(2)» вернёт true, а «[1, 2, 3].includes(4)» вернёт false;
  • Методы String.prototype.padStart() и String.prototype.padEnd() для доведения строки до заданного размера путём добавления повторяющегося шаблона заполнения в начало или конец строки. Например, ‘abc’.padEnd(10, «foo») выдаст «abcfoofoof», а ‘abc’.padEnd(6,»123465″) выдаст «abc123»;
  • Для генераторов и методов генераторов больше не вызываются конструкторы;
  1. Главная ссылка к новости (https://mail.mozilla.org/piper…)
  2. OpenNews: В Chrome и движке V8 обеспечена поддержка спецификаций ECMAScript 6 и 7
  3. OpenNews: Утверждён стандарт ECMAScript 6
  4. OpenNews: ECMAScript 5 утвержден в качестве стандарта
  5. OpenNews: Adobe подарила сообществу Mozilla код ECMAScript 4. Вышел Firefox 1.5.0.8
  6. OpenNews: Google развивает AtScript, вариант JavaScript с аннотациями типов
Тип: К сведению
Ключевые слова: ecmascript, javascript, standard
При перепечатке указание ссылки на opennet.ru обязательно
 
+7 +/
>ECMAScript 7 примечателен переходом к новому непрерывному процессу формирования стандартов

We need to go deeper. Ждем стандарт на процесс формирования стандартов.

 
 
 
–1 +/
> indexOf возвращет индекс найденного элемента иначе -1, а includes возващает булево значение.

Все, капут!! -1 к булевому не привести!

[1,2,3].indexOf(2) !== -1
или
!!~[1,2,3].indexOf(2)

стало
[1,2,3].includes(2)

 
 
 
+2 +/
> indexOf не найдет NaN, успокойся.

Спокойствие дороговато выходит.
Раньше разработчику нужно было только помнить, что indexOf не найдет NaN, потому что NaN !== NaN.
Теперь ему еще нужно помнить, что include найдет NaN, несмотря на то, что NaN !== NaN.

Мне одному это напоминает Пых?

 
 
+1 +/
Array.prototype.includes в данном вопросе ведет себя так же, как и Set.prototype.has. Все вполне логично. Если зачем-то понадобился индекс NaN, делаешь array.findIndex(isNaN).
 
+/
indexOf вынужден выдавать порядковый номер. includes от этого ограничения свободен, а значит может быть реализован совсем другим способами, дающим для больших массивов различие в скорости нахождения на порядки.
 
 
 
 
Часть нити удалена модератором

+/
> клоун: Сразу видно уровень специалистов. Слово «метод» вам просто так написали?
> a = [1,2,3]

[1, 2, 3]
> Array.prototype.emptyMe = function(){ this.length = 0;}
> a.emptyMe()
> a

[]

пользуйся и не плач

 

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

Навигация

Let’s block ads! (Why?)


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

Ваш e-mail не будет опубликован. Обязательные поля помечены *