ES6부터 ES2023까지 버전별 추가 기능 정리
ES6(2015)부터 ES2023까지, 버전별로 추가된 주요 기능을 정리했다.
ECMAScript(ECMA-262) 는 Javascript 명세 또는 스펙을 의미한다.
ECMA-262 : ECMA인터내셔널(표준기구)은 ECMAScript 언어의 공식 사양인 ECMA-262 표준을 만들었다.
즉, ECMAScript는 자바스크립트의 표준이며 뼈대(core)를 구성하는 스크립트 언어다.
자바스크립트는 ECMAScript 명세 또는 스펙을 따르는 스크립트 언어라고 할 수 있다.
ECMAScript 6 (2015)
ES6에는 다음과 같은 새로운 기능이 추가 되었다.
arrows (화살표 함수)
classes (클래스)
enhanced object literals (object 메소드 선언 및 속성(동적) 선언)
template strings (템플릿 문자열)
destructuring (구조분해할당)
default + rest + spread (default 파라미터, rest 파라미터, 전개연산자)
let + const (let, const block level 스코프 변수선언)
iterators + for..of
generators
unicode
modules
module loaders
map + set + weakmap + weakset
proxies
symbols
subclassable built-ins
promises (비동기 프로그래밍)
math + number + string + array + object APIs
binary and octal literals
reflect api
tail calls (꼬리 물기 최적화)
ECMAScript 7 (2016)
Array.prototype.includes()
지수 연산자(**)
ECMAScript 8 (2017)
Async Functions (async ~ await)
Shared memory and atomics (공유된 메모리와 원자 / SharedArrayBuffer 객체와 Atomics 객체를 사용한 메모리 공유)
ECMAScript 9 (2018)
Asynchronous Iteration (비동기 반복 / for-await-of)
Rest/Spread Properties (전개연산 및 rest 파라미터 -> 배열로 변경)
ECMAScript 10 (2019)
Array. Flat () and Array flatMap ()
Object.fromEntries()
String.prototype.trimStart(), String.prototype.trimEnd()
Optional Catch
Function.prototype.toString()
Symbol.prototype.description
ECMAScript 11 (2020)
BigInt
Dynamic import
Optional chaining (?.)
import.meta
globalThis
String.prototype.matchAll() (지정된 정규식에 대해 문자열과 일치하는 모든 결과의 iterator를 반환)
Null coalescing operator (null 병합 연산자)
ECMAScript 12 (2021)
String.prototype.replaceAll()
Promise.any() (promise 중 하나라도 성공하면 실행을 완료)
Logical operators and assignment expressions (논리 연산자와 할당 표현식을 결합)
WeakRefs
Numeric separators (숫자 구분 기호 _)
ECMAScript 13 (2022)
Class: private, static
Top-Level await
Error.cause
.at() (배열의 음수 인덱스 접근)
Object.hasOwn()
ECMAScript 14 (2023)
Change Array by Copy (새로 복사된 배열을 반환/ toReversed(), toSorted(), toSpliced())
Array.prototype.findLast() , Array.prototype.findLastIndex()
Symbols as WeakMap keys

