ECMAScript 2015 is the sixth edition of the ECMAScript Language Specification standard. It defines the standard for the JavaScript implementation in SpiderMonkey , the engine used in Firefox and other Mozilla applications.
Code-named "ES.next", "Harmony", or "ECMAScript 6", the first working draft (based on ECMAScript 5.1 ) was published on July 12, 2011 as "ES.next". In August 2014, the ECMAScript 2015 draft specification was feature frozen and went through a stabilization and bug fixing period. Finally, ECMA-262 Edition 6 got officially approved and published as a standard on June 17, 2015 by the ECMA General Assembly. It will also appear as the international industry standard ISO/IEC 16262:2016.
A PDF and HTML version of the standard can be freely downloaded on ecma-international.org .
A channel for feedback on ECMAScript standards is es-discuss .
Array
object
Array
iteration with
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.values()
Array.prototype.copyWithin()
(
Firefox 32
)
get Array[@@species]
(
Firefox 48
)
Map
and
Set
objects, and their weak counterparts
Map
(
Firefox 13
)
Map
iteration with
for...of
(
Firefox 17
)
Map.prototype.forEach()
(
Firefox 25
)
Map.prototype.entries()
(
Firefox 20
)
Map.prototype.keys()
(
Firefox 20
)
Map.prototype.values()
new
Map
(null)
(
Firefox 37
)
set()
in Constructor (
Firefox 37
)
get Map[@@species]
(
Firefox 41
)
Set
(
Firefox 13
)
Set
iteration with
for...of
(
Firefox 17
)
Set.prototype.forEach()
(
Firefox 25
)
Set.prototype.entries()
,
Set.prototype.keys()
,
Set.prototype.values()
(
Firefox 24
)
new
Set
(null)
(
Firefox 37
)
add()
in Constructor (
Firefox 37
)
get Set[@@species]
(
Firefox 41
)
WeakMap
(
Firefox 6
)
WeakMap.clear()
(
Firefox 20
)
WeakMap
constructor (
Firefox 36
)
new
WeakMap
(null)
(
Firefox 37
)
set()
in Constructor (
Firefox 37
)
WeakSet
(
Firefox 34
)
new
WeakSet
(null)
(
Firefox 37
)
add()
in Constructor (
Firefox 37
)
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
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
)
Object
object
Object.prototype.__proto__
has been standardized
Object.is()
(
Firefox 22
)
Object.setPrototypeOf()
(
Firefox 31
)
Object.assign()
(
Firefox 34
)
Object.getOwnPropertySymbols()
(
Firefox 33
)
Date
object
Date.prototype
is an ordinary object (
Firefox 41
)
Date.prototype.toString
(
Firefox 41
)
Date.prototype[@@toPrimitive]
(
Firefox 44
)
Promise
object
Promise
(
Firefox 24
, enabled by default in
Firefox 29
)
Proxy
object
Proxy
(
Firefox 18
)
preventExtensions()
trap (
Firefox 22
)
isExtensible()
trap (
Firefox 31
)
getPrototypeOf()
and
setPrototypeOf()
traps (
Firefox 49
)
Reflect
object
Reflect
(
Firefox 42
)
RegExp
object
RegExp
sticky (y) flag (
Firefox 38
)
RegExp
unicode (u) flag (
Firefox 46
)
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
)
String
object
String.fromCodePoint()
(
Firefox 29
)
String.prototype.codePointAt()
(
Firefox 29
)
String.prototype.startsWith()
,
String.prototype.endsWith()
(
Firefox 17
)
String.prototype.includes()
(
Firefox 40
) (formerly
String.prototype.contains()
(
Firefox 17
))
String.prototype.repeat()
(
Firefox 24
)
String.prototype.normalize()
(
Firefox 31
)
String.raw()
(
Firefox 34
)
Symbol
object
Symbol
(
Firefox 36
)
Symbol.iterator
(
Firefox 36
)
Symbol.for()
- global Symbol registry (
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 are specified as part of ECMAScript 2015 and no longer in their own specification .
ArrayBuffer
get ArrayBuffer[@@species]
(
Firefox 48
)
DataView
Int8Array
Uint8Array
Uint8ClampedArray
Int16Array
Uint16Array
Int32Array
Uint32Array
Float32Array
Float64Array
get %TypedArray%[@@species]
(
Firefox 48
)
Symbol.iterator
property (
Firefox 36
)
Symbol.iterator
property (
Firefox 36
)
const
(
JS 1.5
, Firefox 1.0) (ES2015 compliance
bug 950547
implemented in Firefox 51)
let
(
JS 1.7
,
Firefox 2
) (ES2015 compliance
bug 950547
implemented in Firefox 51)
for...of
(
Firefox 13
)
.iterator()
and
.next()
(
Firefox 17
)
"@@iterator"
property (
Firefox 27
)
Symbol.iterator
property (
Firefox 36
)
Generator function
(
Firefox 26
)
yield
(
Firefox 26
)
yield*
(
Firefox 27
)
arguments[@@iterator]
(
Firefox 46
)