자바스크립트 버전별 특징 총정리(2025)

자바스크립트(JavaScript)는 웹 개발에서 필수적인 프로그래밍 언어로, 꾸준한 업데이트를 통해 성능과 기능이 향상되고 있습니다. 특히 ECMAScript(ES) 표준을 기반으로 매년 새로운 기능이 추가됩니다.

이번 글에서는 자바스크립트의 주요 버전과 각 버전별 특징을 정리해보겠습니다.


1. 자바스크립트의 역사와 ECMAScript 표준

자바스크립트(JavaScript)란?

  • 1995년 넷스케이프(Netscape)에서 웹 브라우저용 스크립트 언어로 개발
  • 웹 페이지의 동적 기능(애니메이션, 이벤트 처리 등)을 담당
  • 현재 **브라우저(Chrome, Edge, Firefox, Safari)**뿐만 아니라 **서버(Node.js)**에서도 사용됨

ECMAScript(ES)란?

  • 자바스크립트의 표준화된 버전으로, ECMA-262에서 정의
  • 2015년부터 매년 새로운 기능을 추가

📌 자바스크립트와 ECMAScript는 같은 개념이 아니지만, 일반적으로 동일한 의미로 사용됨


2. 자바스크립트 주요 버전 및 특징 정리

버전출시 연도주요 특징
ES31999년try-catch 예외 처리, do-while, switch, getter/setter
ES52009년strict mode, JSON 지원, Object.defineProperty()
ES6 (ES2015)2015년let, const, arrow function, class, Promise 도입
ES7 (ES2016)2016년Array.prototype.includes(), Exponentiation operator (**)
ES8 (ES2017)2017년async/await, Object.entries(), Object.values()
ES9 (ES2018)2018년Rest/Spread, Promise.finally(), 비동기 이터레이터
ES10 (ES2019)2019년flat(), flatMap(), Object.fromEntries()
ES11 (ES2020)2020년nullish coalescing(??), optional chaining(?.), BigInt 지원
ES12 (ES2021)2021년replaceAll(), Promise.any(), 논리 할당 연산자
ES13 (ES2022)2022년at(), top-level await, class fields
ES14 (ES2023)2023년Array findLast(), Symbol.metadata, import attributes
ES15 (ES2024 예상)2024~2025년Set operations (union, intersection), async context tracking

3. 주요 ECMAScript 버전별 상세 기능

🔹 ES3 (1999년) – 초창기 버전

try-catch 예외 처리 도입
do-while, switch 문 추가
getter, setter 지원

📌 초기 브라우저에서 동작했던 가장 널리 사용된 버전


🔹 ES5 (2009년) – 현대적인 자바스크립트의 시작

"use strict"; (엄격 모드) 도입
JSON 지원 (JSON.parse(), JSON.stringify())
Object.defineProperty()로 객체 속성 제어 가능

"use strict";  
let obj = { a: 1 };  
Object.defineProperty(obj, "b", { value: 2, writable: false });  
console.log(obj.b); // 2  
obj.b = 3; // 에러 발생 (strict mode)  

📌 IE9 이상에서 지원되며, 안정적인 웹 개발이 가능해짐


🔹 ES6 (2015년) – 가장 큰 변화 (현대 JS의 기준)

let, const 키워드 추가 (블록 스코프)
Arrow function (=>) 도입
Class 문법 추가
Promisedefault parameter 지원

const add = (a, b) => a + b;  
console.log(add(5, 3)); // 8  

📌 ES6 이후부터 자바스크립트는 현대적인 개발 패턴을 따르게 됨


🔹 ES7 (2016년) – 작은 개선

Array.prototype.includes() 메서드 추가
** (지수 연산자) 도입

console.log([1, 2, 3].includes(2)); // true  
console.log(2 ** 3); // 8  

📌 간단하지만 유용한 연산 기능 추가


🔹 ES8 (2017년) – 비동기 프로그래밍 개선

async/await 지원
Object.entries()Object.values() 추가

async function fetchData() {  
  let response = await fetch("https://api.example.com/data");  
  let data = await response.json();  
  console.log(data);  
}  

📌 비동기 코드가 훨씬 간결하고 직관적으로 변경됨


🔹 ES9 ~ ES12 (2018~2021년) – 성능 및 문법 개선

Promise.finally() (ES9)
Object.fromEntries() (ES10)
nullish coalescing(??)optional chaining(?.) (ES11)
replaceAll(), Promise.any() (ES12)

let user = { profile: { name: "Alice" } };  
console.log(user.profile?.name ?? "Guest"); // "Alice"  

📌 선택적 체이닝(?.)과 널 병합 연산자(??)는 코드 가독성을 높여줌


🔹 ES13 ~ ES15 (2022~2025년) – 최신 기능 및 예상 업데이트

Array.at() (ES13)
import attributes (ES14)
Set operations (union, intersection) (ES15 예상)

let arr = [10, 20, 30];  
console.log(arr.at(-1)); // 30  

📌 배열 조작이 더 직관적으로 개선됨


4. 최신 자바스크립트 버전을 학습하는 방법

MDN 웹 문서https://developer.mozilla.org/
ECMA 공식 문서https://tc39.es/
Chrome V8 블로그 – 최신 엔진 업데이트 확인 가능

📌 최신 브라우저(Chrome, Edge, Firefox)에서는 ES6+ 버전이 기본적으로 지원되므로 최신 기능을 활용하는 것이 좋습니다.


5. 마무리

자바스크립트는 ECMAScript(ES) 표준을 기반으로 매년 새로운 기능이 추가되며, 최신 버전을 학습하는 것이 중요합니다.

💡 자바스크립트 버전 요약
✅ ES5 (2009) – "use strict";, JSON 지원
✅ ES6 (2015) – let/const, class, Promise, arrow function
✅ ES8 (2017) – async/await, Object.entries()
✅ ES11 (2020) – nullish coalescing(??), optional chaining(?.)
✅ ES14 (2023) – Array findLast(), import attributes

앞으로도 자바스크립트의 최신 업데이트를 꾸준히 학습하여 더 효율적인 코드 작성이 가능하도록 준비해 보세요! 🚀💡