На очередном собрании Генеральной Ассамблеи 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";
  • Для генераторов и методов генераторов больше не вызываются конструкторы;


Источник: http://www.opennet.ru/opennews/art.shtml?num=44618