ECMAScript 2015 (ES6) es la sexta edicion de las especificaciones del estandar del lenguaje ECMAScript. Esta versión define el estandar para la implementación de Javascript en SpiderMonkey, el motor utilizado en Firefox y otras aplicaciones de Mozilla.
Con el nombre clave de "ES.next", "Harmony" o "ECMAScript 6", el primer borrador (basado en ECMAScript 5.1) fue publicado el 12 de Julio del 2011 como "ES.next". En Agosto de 2014, el borrador de la especificación ECMAScript 2015 fue detenido y pasó por un período de estabilización y correción de errores. Finalmente, el ECMA-262 Edición 6 fue oficialmente aprobado y publicado como un estándar en Junio 17 de 2015 por la Asamblea General de ECMA. También aparecerá como una norma internacional de la industria ISO/IEC 16262:2016.
El estándar se puede consultar (y descargar) en los formatos HTML y PDF de manera gratuita desde ecma-international.org.
Un canal para la retroalimentación sobre los estandares ECMAScript es es-discuss.
Biblioteca estándar
Adiciones al objeto Array
- Iteración
Array
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.values()
Array.prototype.copyWithin()
(Firefox 32)get Array[@@species]
(Firefox 48)
Nuevos objetos Map
y Set
, y contrapartes débiles
Map
(Firefox 13)- Iteración
Map
confor...of
(Firefox 17) Map.prototype.forEach()
(Firefox 25)Map.prototype.entries()
(Firefox 20)Map.prototype.keys()
(Firefox 20)Map.prototype.values()
- Argumento del Constructor:
new
(Firefox 37)Map
(null) - Monkey-patched
set()
en el Constructor (Firefox 37) get Map[@@species]
(Firefox 41)
- Iteración
Set
(Firefox 13)- Iteración
Set
confor...of
(Firefox 17) Set.prototype.forEach()
(Firefox 25)Set.prototype.entries()
,
Set.prototype.keys()
,
Set.prototype.values()
(Firefox 24)- Argumento del Constructor:
new
(Firefox 37)Set
(null) - Monkey-patched
add()
en el Constructor (Firefox 37) get Set[@@species]
(Firefox 41)
- Iteración
WeakMap
(Firefox 6)WeakMap.clear()
(Firefox 20)- Argumento iterable opcional en el constructor
WeakMap
(Firefox 36) - Argumento del Constructor:
new
(Firefox 37)WeakMap
(null) - Monkey-patched
set()
en el Constructor (Firefox 37)
WeakSet
(Firefox 34)- Argumento del Constructor:
new
(Firefox 37)WeakSet
(null) - Monkey-patched
add()
en el Constructor (Firefox 37)
- Argumento del Constructor:
Nuevas funciones 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)
Adiciones al objeto 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)
Adiciones al objeto Object
Object.prototype.__proto__
ha sido estandarizadoObject.is()
(Firefox 22)Object.setPrototypeOf()
(Firefox 31)Object.assign()
(Firefox 34)Object.getOwnPropertySymbols()
(Firefox 33)
Adiciones al objeto Date
Date.prototype
es un objeto ordinario (Firefox 41)- genérico
Date.prototype.toString
(Firefox 41) Date.prototype[@@toPrimitive]
(Firefox 44)
Nuevo objeto Promise
Promise
(Firefox 24, habilitado por defecto en Firefox 29)
Nuevo objeto Proxy
Proxy
(Firefox 18)preventExtensions()
trap (Firefox 22)isExtensible()
trap (Firefox 31)getPrototypeOf()
andsetPrototypeOf()
traps (Firefox 49)
Nuevo objeto Reflect
Adiciones al objeto RegExp
RegExp
sticky (y) flag (Firefox 38)RegExp
unicode (u) flag (Firefox 46)- generic
RegExp.prototype.toString
(Firefox 39) RegExp.prototype[@@match]()
(Firefox 49)RegExp.prototype[@@replace]()
(Firefox 49)RegExp.prototype[@@search]()
(Firefox 49)RegExp.prototype[@@split]()
(Firefox 49)get RegExp[@@species]
(Firefox 49)
Adiciones al objeto String
String.fromCodePoint()
(Firefox 29)String.prototype.codePointAt()
(Firefox 29)String.prototype.startsWith()
,String.prototype.endsWith()
(Firefox 17)String.prototype.includes()
(Firefox 40)(anteriormenteString.prototype.contains()
(Firefox 17))String.prototype.repeat()
(Firefox 24)String.prototype.normalize()
(Firefox 31)String.raw()
(Firefox 34)- \u{XXXXXX} Unicode code point escapes (Firefox 40)
Nuevo objeto Symbol
Symbol
(Firefox 36)Symbol.iterator
(Firefox 36)Symbol.for()
- registro global de símbolos (Firefox 36)Symbol.match
(Firefox 40)Symbol.species
(Firefox 41)Symbol.toPrimitive
(Firefox 44)Symbol.prototype[@@toPrimitive]
(Firefox 44)Symbol.replace
(Firefox 49)Symbol.search
(Firefox 49)Symbol.split
(Firefox 49)Symbol.hasInstance
(Firefox 50)
Typed Arrays
Typed arrays se especifican como parte de ECMAScript 2015 y ya no en su propia especificación.
ArrayBuffer
get ArrayBuffer[@@species]
(Firefox 48)DataView
Int8Array
Uint8Array
Uint8ClampedArray
Int16Array
Uint16Array
Int32Array
Uint32Array
Float32Array
Float64Array
get %TypedArray%[@@species]
(Firefox 48)
Expresiones y operadores
- new.target (Firefox 41)
- Operador Spread para arrays (Firefox 16)
- Utiliza la propiedad
Symbol.iterator
(Firefox 36)
- Utiliza la propiedad
- Operador Spread para llamadas a funciones (Firefox 27)
- Utiliza la propiedad
Symbol.iterator
(Firefox 36)
- Utiliza la propiedad
const
(JS 1.5, Firefox 1.0) (cumple con ES2015 error 950547 implementado en Firefox 51)let
(JS 1.7, Firefox 2) (en cumplimiento de ES2015 error 950547 implementado en Firefox 51)- Destructuring assignment (JS 1.7, Firefox 2) (en cumplimiento de ES2015 error 1055984)
Sentencias
for...of
(Firefox 13)- Funciona en terminos de
.iterator()
y.next()
(Firefox 17) - Usa la propiedad
"@@iterator"
(Firefox 27) - Usa la propiedad
Symbol.iterator
(Firefox 36)
- Funciona en terminos de
Funciones
- Parametros Rest (Firefox 15)
- Parametros por Defecto o predeterminados (Firefox 15)
- Parámetros sin valores predeterminados después de los parámetros predeterminados (Firefox 26)
- Parámetros desestructurados con asignación de valor predeterminada (Firefox 41)
- Funciones flecha (Firefox 22)
Generator function
(Firefox 26)arguments[@@iterator]
(Firefox 46)
Otras características
- Literales numéricos binarios y octales (Firefox 25)
- Plantillas de strings (Firefox 34)
- Inicializador de objetos: nombres de propiedades abreviadas (Firefox 33)
- Inicializador de objetos: nombres de propiedades computados (Firefox 34)
- Inicializador de objetos: nombres de métodos abreviados (Firefox 34)