ECMAScript 6은 차기 표준이고, 코드네임은 "ES.next"입니다. 명세 초안은 ECMA 위키에서 확인하실 수 있습니다. 첫 초안 작업은 2011년 7월 12일에 "ES.next"로 공개된 ECMAScript 5.1에 기반을 두고 작성되었습니다. 2014년 8월 시점에서 ECMAScript 6은 기능 추가가 동결되었으며, 2015년 내로 완료될 예정입니다. ECMAScript 6는 2015년 3월부터 공식 발표 과정으로 넘어갑니다(2015년 6월에 완료).
ECMAScript 표준에 대한 피드백 채널은 es-discuss을 이용하시면 됩니다.
이미 지원되는 기능
다음 기능들은 Firefox에서 이미 구현되어 있습니다:
표준 라이브러리
Array
객체 추가사항
for...of
에서의Array
반복 (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
객체 그리고 WeakMap과
WeakSet 객체
Map
(Firefox 13)for...of
에서의Map
반복 (Firefox 17)Map.prototype.forEach()
(Firefox 25)Map.prototype.entries()
,
Map.prototype.keys()
,
Map.prototype.values()
(Firefox 20)- 생성자 인수:
new
(Firefox 37)Map
(null) - 몽키 패치 된 생성자 내의
set()
(Firefox 37)
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.is()
(Firefox 22)Object.setPrototypeOf()
(Firefox 31)Object.assign()
(Firefox 34)Object.getOwnPropertySymbols()
(Firefox 33)
새로운 Promise
객체
Promise
(Firefox 24(Firefox 29에서 기본값으로 활성화 되어 있음))
RegExp
객체 추가사항
RegExp
선택적인 (y) 플래그 (Firefox 3)- 일반적
RegExp.prototype.toString
(Firefox 39)
String
객체 추가사항
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)- u{XXXXXX} 유니코드 코드 포인트 (Firefox 40)
새로운 Symbol
객체
Symbol
(Firefox 36)Symbol.iterator
(Firefox 36)Symbol.for()
- 전역 Symbol 레지스트리 (Firefox 36)Symbol.match
(Firefox 40)
새로운 class
구문
- 기본 지원 (Firefox 39)
extends
지원 (Firefox 39)static
메소드 정의 (Firefox 39)
형식화된 배열
형식화된 배열은 ECMAScript 6의 일부로 지정되었고, 더 이상 자신의 기존 명세서를 따르지 않습니다.
ArrayBuffer
DataView
Int8Array
Uint8Array
Uint8ClampedArray
Int16Array
Uint16Array
Int32Array
Uint32Array
Float32Array
Float64Array
표현식과 연산자
- 배열을 위한 Spread 연산자 (Firefox 16)
Symbol.iterator
속성 사용 (Firefox 36)
- 함수 호출을 위한 Spread 연산자 (Firefox 27)
Symbol.iterator
속성 사용 (Firefox 36)
문(문장)
for...of
(Firefox 13).iterator()
와.next()
에 관한 동작 (Firefox 17)"@@iterator"
속성 사용 (Firefox 27)Symbol.iterator
속성 사용 (Firefox 36)
함수
그 밖의 기능
- 2진과 8진 숫자 리터럴 (Firefox 25)
- 템플릿 문자열 (Firefox 34)
- 객체 이니셜라이져: 줄임 속성 이름 (Firefox 33)
- 객체 이니셜라이저: 계산된 속성 이름 (Firefox 34)
- 객체 이니셜라이저: 줄임 메소드 이름 (Firefox 34)
지속적인 호환성 및 안정화 기능 변경
다음 기능들은 Firefox에서 부분적으로 구현되어 있지만, ES6보다 오래 전에 도입되어 ECMA TC39 표준화 단체에서 계속 논의되고 있습니다.
- 레거시 반복자와 생성자 (JS 1.7, Firefox 2)
- ES6 반복자와 생성자는 Firefox 26+에서 구현되어 있음
- 분할 할당 (JS 1.7, Firefox 2) (ES6 호환 bug 950547)
const
(JS 1.5, Firefox 1.0) (ES6 호환 bug 950547)let
(JS 1.7, Firefox 2) (ES6 호환 bug 950547)Proxy
(Firefox 18) (ES6 호환 bug 978228)
아직 지원되지 않는 기능
다음 기능들은 ECMAScript 6 초안 명세서에 존재하지만, 아직 Firefox에서는 구현되지 않았습니다:
- 모듈 (bug 568953)
import
구문export
구문
Array.prototype.values()
(bug 875433)Reflect
(bug 987514)- \u{nnnnnn} 유니코드 코드 포인트 이스케이프 (bug 952985)
- 잘 알려진
Symbol
기호 - RegExp "u" 플래그