Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.
ECMAScript 2015 (6ta edición) es la versión actual de la especificación del lenguaje ECMAScript, conocida simplemente como "ES6". Esta versión define el estandar para la implementación de JavaScript en SpiderMonkey, el motor utilizado por Firefox y otras aplicaciones de Mozilla.
El nombre clave es "ES.next" o "Harmony". El primer borrador de la especificación (basada en ECMAScript 5.1) fue publicada el 12 de Julio de 2011 como "ES.next", en Agosto de 2014 el borrador de la especificación fue detenido respecto de nuevas características y pasó por un período de estabilización y soluciones de bugs, finalmente, el ECMA-262 edición 6 fue oficialmente aprobada y publicada en Junio 17 de 2015 por el ECMA General Assembly. También aparecerá como el ISO/IEC 16262:2016.
Se puede consultar (y descargar) en los formatos HTML y PDF de manera gratuita, una versión del estandar desde ecma-international.org.
Un canal con retroalimentación sobre los estandares ECMAScript es es-discuss.
Ya es soportado por Firefox!
Las caracteristicas listadas aquí ya están soportadas por Firefox; Se indica la versión de Firefox en que fue soportada (adicionada) cada característica.
Libreria Estandar
Adiciones al objeto Array
Array
iteración confor...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)
New Map
and Set
objects, and their weak counterparts
Map
(Firefox 13)Map
iteration withfor...of
(Firefox 17)Map.prototype.forEach()
(Firefox 25)Map.prototype.entries()
,
Map.prototype.keys()
,
Map.prototype.values()
(Firefox 20)- Constructor argument:
new
(Firefox 37)Map
(null) - Monkey-patched
set()
in Constructor (Firefox 37)
Set
(Firefox 13)Set
iteration withfor...of
(Firefox 17)Set.prototype.forEach()
(Firefox 25)Set.prototype.entries()
,
Set.prototype.keys()
,
Set.prototype.values()
(Firefox 24)- Constructor argument:
new
(Firefox 37)Set
(null) - Monkey-patched
add()
in Constructor (Firefox 37)
WeakMap
(Firefox 6)WeakMap.clear()
(Firefox 20)- optional iterable argument in
WeakMap
constructor (Firefox 36) - Constructor argument:
new
(Firefox 37)WeakMap
(null) - Monkey-patched
set()
in Constructor (Firefox 37)
WeakSet
(Firefox 34)- Constructor argument:
new
(Firefox 37)WeakSet
(null) - Monkey-patched
add()
in Constructor (Firefox 37)
- Constructor argument:
New Math
functions
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)
Additions to the Number
object
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)
Additions to the Object
object
Object.is()
(Firefox 22)Object.setPrototypeOf()
(Firefox 31)Object.assign()
(Firefox 34)Object.getOwnPropertySymbols()
(Firefox 33)
New Promise
object
Promise
(Firefox 24, enabled by default in Firefox 29)
Additions to the RegExp
object
RegExp
sticky (y) flag (Firefox 3)- generic
RegExp.prototype.toString
(Firefox 39)
Additions to the String
object
String.fromCodePoint()
(Firefox 29)String.prototype.codePointAt()
(Firefox 29)String.prototype.startsWith()
,String.prototype.endsWith()
(Firefox 17)String.prototype.includes()
(Firefox 17)String.prototype.repeat()
(Firefox 24)String.prototype.normalize()
(Firefox 31)String.raw()
(Firefox 34)
New Symbol
object
Symbol
(Firefox 36)Symbol.iterator
(Firefox 36)Symbol.for()
- global Symbol registry (Firefox 36)Symbol.match
(Firefox 40)
New class
syntax
- Basic support (Firefox 39)
extends
support (Firefox 39)static
method definitions (Firefox 39)
Typed Arrays
Typed arrays are specified as part of ECMAScript 6 and no longer in their own specification.
ArrayBuffer
DataView
Int8Array
Uint8Array
Uint8ClampedArray
Int16Array
Uint16Array
Int32Array
Uint32Array
Float32Array
Float64Array
Expressions and operators
- Spread operator for arrays (Firefox 16)
- use
Symbol.iterator
property (Firefox 36)
- use
- Spread operator for function calls (Firefox 27)
- use
Symbol.iterator
property (Firefox 36)
- use
Statements
for...of
(Firefox 13)- works in terms of
.iterator()
and.next()
(Firefox 17) - use
"@@iterator"
property (Firefox 27) - use
Symbol.iterator
property (Firefox 36)
- works in terms of
Functions
- Rest parameters (Firefox 15)
- Default parameters (Firefox 15)
- Arrow functions (Firefox 22)
Generator function
(Firefox 26)
Other features
- Binary and octal numeric literals (Firefox 25)
- Template strings (Firefox 34)
- Object initializer: shorthand property names (Firefox 33)
- Object initializer: computed property names (Firefox 34)
- Object initializer: shorthand method names (Firefox 34)
Features with compliance and stabilization changes ongoing
The following features are (partially) implemented in Firefox, but were introduced long before ES6 or are still discussed in the ECMA TC39 standards body.
- Legacy iterators and generators (JS 1.7, Firefox 2)
- ES6 iterators and generators implemented in Firefox 26+
- Destructuring assignment (JS 1.7, Firefox 2) (ES6 compliance bug 950547)
const
(JS 1.5, Firefox 1.0) (ES6 compliance bug 950547)let
(JS 1.7, Firefox 2) (ES6 compliance bug 950547)Proxy
(Firefox 18) (ES6 compliance bug 978228)
Features not yet supported
The following features are in the ECMAScript 6 draft specification, but not yet implemented in Firefox:
- Modules (bug 568953)
import
syntaxexport
syntax
Array.prototype.values()
(bug 875433)Reflect
(bug 987514)- \u{nnnnnn} Unicode code point escapes (bug 320500)
- Well-known symbols
- RegExp "u" flag