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.
ECMAScript 표준에 대한 피드백 채널은 es-discuss을 이용하시면 됩니다.
표준 라이브러리
Array 객체 추가사항
Arrayiteration withfor...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과 Set 객체 그리고 WeakMap과 WeakSet 객체
Map(Firefox 13)for...of에서의Map반복 (Firefox 17)Map.prototype.forEach()(Firefox 25)Map.prototype.entries()(Firefox 20)Map.prototype.keys()(Firefox 20)Map.prototype.values()- 생성자 인수:
new(Firefox 37)Map(null) - 몽키 패치 된 생성자 내의
set()(Firefox 37) get Map[@@species](Firefox 41)
Set(Firefox 13)for...of에서의Set반복 (Firefox 17)Set.prototype.forEach()(Firefox 25)Set.prototype.entries(),
Set.prototype.keys(),
Set.prototype.values()(Firefox 24)- 생성자 인수:
new(Firefox 37)Set(null) - 몽키 패치 된 생성자 내의
add()(Firefox 37)
WeakMap(Firefox 6)WeakMap.clear()(Firefox 20)- 반복 가능한
WeakMap생성자 내의 선택적 인수 (Firefox 36) - 생성자 인수:
new(Firefox 37)WeakMap(null) - 몽키 패치 된 생성자 내의
set()(Firefox 37)
WeakSet(Firefox 34)- 생성자 인수:
new(Firefox 37)WeakSet(null) - 몽키 패치 된 생성자 내의
add()(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 객체 추가사항
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.prototype.__proto__가 표준이 되었습니다.Object.is()(Firefox 22)Object.setPrototypeOf()(Firefox 31)Object.assign()(Firefox 34)Object.getOwnPropertySymbols()(Firefox 33)
Date 객체 추가사항
Date.prototypeis an ordinary object (Firefox 41)- generic
Date.prototype.toString(Firefox 41) Date.prototype[@@toPrimitive](Firefox 44)
새로운 Promise 객체
Promise(Firefox 24(Firefox 29에서 기본값으로 활성화 되어 있음))
새로운 Proxy 객체
Proxy(Firefox 18)preventExtensions()trap (Firefox 22)isExtensible()trap (Firefox 31)getPrototypeOf()andsetPrototypeOf()traps (Firefox 49)
새로운 Reflect 객체
RegExp 객체 추가사항
RegExpsticky (y) flag (Firefox 38)RegExpunicode (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)
String 객체 추가사항
String.fromCodePoint()(Firefox 29)String.prototype.codePointAt()(Firefox 29)String.prototype.startsWith(),String.prototype.endsWith()(Firefox 17)String.prototype.includes()(Firefox 40) (formerlyString.prototype.contains()(Firefox 17))String.prototype.repeat()(Firefox 24)String.prototype.normalize()(Firefox 31)String.raw()(Firefox 34)- u{XXXXXX} 유니코드 코드 포인트 (Firefox 40)
새로운 Symbol 객체
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)
형식화된 배열
형식화된 배열은 ECMAScript 2015의 일부로 지정되었고, 더 이상 자신의 기존 명세서를 따르지 않습니다.
ArrayBufferget ArrayBuffer[@@species](Firefox 48)DataViewInt8ArrayUint8ArrayUint8ClampedArrayInt16ArrayUint16ArrayInt32ArrayUint32ArrayFloat32ArrayFloat64Arrayget %TypedArray%[@@species](Firefox 48)
표현식과 연산자
- new.target (Firefox 41)
- 배열을 위한 Spread 연산자 (Firefox 16)
Symbol.iterator속성 사용 (Firefox 36)
- 함수 호출을 위한 Spread 연산자 (Firefox 27)
Symbol.iterator속성 사용 (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)- Destructuring assignment (JS 1.7, Firefox 2) (ES2015 compliance bug 1055984)
문(문장)
for...of(Firefox 13).iterator()와.next()에 관한 동작 (Firefox 17)"@@iterator"속성 사용 (Firefox 27)Symbol.iterator속성 사용 (Firefox 36)
함수
- Rest 매개 변수 (Firefox 15)
- Default 매개 변수 (Firefox 15)
- Parameters without defaults after default parameters (Firefox 26)
- Destructured parameters with default value assignment (Firefox 41)
- Arrow 함수 (Firefox 22)
Generator 함수(Firefox 26)arguments[@@iterator](Firefox 46)
그 밖의 기능
- 2진과 8진 숫자 리터럴 (Firefox 25)
- 템플릿 문자열 (Firefox 34)
- 객체 이니셜라이져: 줄임 속성 이름 (Firefox 33)
- 객체 이니셜라이저: 계산된 속성 이름 (Firefox 34)
- 객체 이니셜라이저: 줄임 메소드 이름 (Firefox 34)