Эта статья нуждается в редакционном обзоре. Как вы можете помочь.
ECMAScript 6 - это новая версия стандарта, имеющая кодовое имя "Harmony" или "ES.next". Черновая спецификация может быть найдена в официальном вики ECMA. Первый рабочий черновик, основанный на ECMAScript 5.1, был опубликован 12 июля 2011 как "ES.next". По состоянию на август 2014 в ECMAScript 6 больше не принимаются новые функции и ожидается окончание работы над ним в конце 2014 с официальной публикацией в марте 2015.
Для получения обратной связи по стандартам ECMAScript используется канал es-discuss.
Поддерживаемые функции
Следующие функции уже реализованы в Firefox:
Стандартная библиотека
Дополнения в объекте Array
- Обход
Array
при помощиfor...of
(Firefox 13) Array.from()
(Firefox 32)Array.of()
(Firefox 25)Array.prototype.fill()
(Firefox 31)Array.prototype.find()
,Array.prototype.findIndex()
(Firefox 25)Array.prototype.entries()
,
Array.prototype.keys()
(Firefox 28)Array.prototype.copyWithin()
(Firefox 32)
Новые объекты Map
и Set
и их слабые аналоги
Map
(Firefox 13)- Обход
Map
при помощиfor...of
(Firefox 17) Map.prototype.forEach()
(Firefox 25)Map.prototype.entries()
,
Map.prototype.keys()
,
Map.prototype.values()
(Firefox 20)
- Обход
Set
(Firefox 13)- Обход
Set
при помощиfor...of
(Firefox 17) Set.prototype.forEach()
(Firefox 25)Set.prototype.entries()
,
Set.prototype.keys()
,
Set.prototype.values()
(Firefox 24)
- Обход
WeakMap
(Firefox 6)WeakSet
(Firefox 34)
Новые функции в объекте Math
Math.imul()
(Firefox 20)Math.clz32()
(Firefox 31)Math.fround()
(Firefox 26)Math.log10()
,Math.log2()
,Math.log1p()
,Math.expm1()
,Math.cosh()
,Math.sinh()
,Math.tanh()
,Math.acosh()
,Math.asinh()
,Math.atanh()
,Math.hypot()
,Math.trunc()
,Math.sign()
,Math.cbrt()
(Firefox 25)
Дополнения в объекте Number
Number.isNaN()
(Firefox 16)Number.isFinite()
(Firefox 16)Number.isInteger()
(Firefox 16)Number.parseInt()
(Firefox 25)Number.parseFloat()
(Firefox 25)Number.EPSILON
(Firefox 25)Number.MAX_SAFE_INTEGER
,Number.MIN_SAFE_INTEGER
(Firefox 31)Number.isSafeInteger()
(Firefox 32)
Дополнения в объекте Object
Object.is()
(Firefox 22)Object.setPrototypeOf()
(Firefox 31)Object.assign()
(Firefox 34)Object.getOwnPropertySymbols()
(Firefox 33)
Новый объект Promise
Promise
(Firefox 24, включён по умолчанию в Firefox 29)
Дополнения в объекте RegExp
Дополнения в объекте String
String.fromCodePoint()
(Firefox 29)String.prototype.codePointAt()
(Firefox 29)String.prototype.startsWith()
,String.prototype.endsWith()
(Firefox 17)String.prototype.contains()
(Firefox 17)String.prototype.repeat()
(Firefox 24)String.prototype.normalize()
(Firefox 31)String.raw()
(Firefox 34)
Новый объект Symbol
Symbol
(Firefox 36)Symbol.for()
- глобальный реестр символов
Типизированные массивы
Типизированные массивы стали часть спецификации ECMAScript 6, а не только своей собственной.
ArrayBuffer
DataView
Int8Array
Uint8Array
Uint8ClampedArray
Int16Array
Uint16Array
Int32Array
Uint32Array
Float32Array
Float64Array
Выражения и операторы
- Оператор распространения в массивах (Firefox 16)
- Оператор распространения при вызовах функций (Firefox 27)
Операторы
Функции
- Оставшиеся параметры (Firefox 15)
- Параметры по умолчанию (Firefox 15)
- Стрелочные функции (Firefox 22)
Другие возможности
- Двоичные и восьмеричные литералы (Firefox 25)
- Вычисляемые названия свойств (Firefox 34)
- Шаблонные строки (Firefox 34)
Стабилизируемые и обсуждаемые функции
Следующие функции частично реализованы в Firefox, но были добавлены до принятия стандарта ES6 или ещё обсуждаются в стандарте ECMA TC39.
- Устаревшие итераторы и генераторы (JS 1.7, Firefox 2)
- Итераторы и генераторы ES6 реализованы в Firefox 26 и выше.
- Деструктивное присваивание (JS 1.7, Firefox 2) (соответствие ES6 ошибка 950547)
const
(JS 1.5, Firefox 1.0) (соответствие ES6 ошибка 950547)let
(JS 1.7, Firefox 2) (соответствие ES6 ошибка 950547)Прокси
(Firefox 18) (соответствие ES6 ошибка 978228)
Не реализованные функции
Следующие функции включены в черновик спецификации ECMAScript 6, но пока не реализованы в Firefox:
- Module (ошибка 568953)
- Loader API
import
синтаксисexport
синтаксис
class
синтаксис (ошибка 837314)Array.prototype.values()
(ошибка 875433)- Reflect API (ошибка 987514)
- Экранирование \u{nnnnnn} в Unicode (ошибка 320500)
- Широко используемые символы
RegExp.prototype.match()
,
RegExp.prototype.replace()
,
RegExp.prototype.search()
,
RegExp.prototype.split()
- Флаг "u" в RegExp
Function.prototype.toMethod()