ECMAScript (ES) 버전은 JavaScript의 표준 버전을 나타냅니다. 현재까지 나온 주요 ES 버전은 다음과 같습니다:
ES5 (2009년)
많은 현대 웹 브라우저에서 지원되는 기본 JavaScript 버전, ES5에서는 객체 리터럴 확장, 배열 메서드 등이 추가
JSON 지원 추가
“strict mode” 도입
배열 메서드 추가 (forEach, map, filter, reduce 등)
Getter와 Setter 지원 추가
Object.create(), Object.defineProperty() 등의 메서드 추가
ES6 / ES2015 (2015년)
큰 변화를 가져온 버전으로, 화살표 함수, 클래스, 템플릿 리터럴, let 및 const 등과 같은 새로운 키워드와 문법이 도입
화살표 함수 (Arrow functions)
클래스 (Classes)
템플릿 리터럴 (Template literals)
let과 const (Block-scoped 변수)
Promise와 async/await
모듈 (Modules)
확산 연산자 (Spread operator)
구조 분해 할당 (Destructuring assignment) 등
ES7 / ES2016 (2016년):
Array.prototype.includes() 추가
지수 연산자 (**
) 추가
ES8 / ES2017 (2017년):
async/await 기능의 개선
Object.values(), Object.entries() 추가
String padding (padStart(), padEnd())
Object.getOwnPropertyDescriptors() 추가
ES9 / ES2018 (2018년):
Rest/Spread 프로퍼티
정규 표현식의 s(flag, dotAll 모드)
Promise.prototype.finally()
Async 반복 (Asynchronous Iteration)
객체 정리 (Object Rest/Spread Properties)
ES10 / ES2019 (2019년):
Array.prototype.flat(), Array.prototype.flatMap()
Object.fromEntries()
String.prototype.trimStart(), String.prototype.trimEnd()
Symbol.prototype.description
Optional Catch Binding
ES11 / ES2020 (2020년):
Optional chaining (?.)
Null 병합 연산자 (??)
BigInt 타입
Promise.allSettled()
String.prototype.matchAll()
ES12 / ES2021 (2021년):
String.prototype.replaceAll()
Promise.any()
Logical Assignment Operators (||=, &&=, ??=)
Numeric Separators
WeakRef 객체 등
ES13 / ES2022 (2022년):
Optional Chaining for property declarations
Numeric separators
Private instance methods and accessors
Extended optional catch binding
새로운 ES 표준은 일반적으로 매년 발표되지만, 새로운 기능을 모두 구현하고 브라우저 및 JavaScript 엔진에 적용하는 데에는 시간이 소요될 수 있습니다.
따라서 모든 브라우저가 가장 최신의 ES 버전을 완전히 지원하는 것은 아닙니다.
Leave a Reply