자바스크립트(JavaScript)는 웹 개발에서 필수적인 프로그래밍 언어로, 꾸준한 업데이트를 통해 성능과 기능이 향상되고 있습니다. 특히 ECMAScript(ES) 표준을 기반으로 매년 새로운 기능이 추가됩니다.
이번 글에서는 자바스크립트의 주요 버전과 각 버전별 특징을 정리해보겠습니다.
✅ 자바스크립트(JavaScript)란?
✅ ECMAScript(ES)란?
📌 자바스크립트와 ECMAScript는 같은 개념이 아니지만, 일반적으로 동일한 의미로 사용됨
버전 | 출시 연도 | 주요 특징 |
---|---|---|
ES3 | 1999년 | try-catch 예외 처리, do-while , switch , getter/setter |
ES5 | 2009년 | 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 |
✅ try-catch
예외 처리 도입
✅ do-while
, switch
문 추가
✅ getter
, setter
지원
📌 초기 브라우저에서 동작했던 가장 널리 사용된 버전
✅ "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 이상에서 지원되며, 안정적인 웹 개발이 가능해짐
✅ let
, const
키워드 추가 (블록 스코프)
✅ Arrow function (=>)
도입
✅ Class
문법 추가
✅ Promise
및 default parameter
지원
const add = (a, b) => a + b;
console.log(add(5, 3)); // 8
📌 ES6 이후부터 자바스크립트는 현대적인 개발 패턴을 따르게 됨
✅ Array.prototype.includes()
메서드 추가
✅ **
(지수 연산자) 도입
console.log([1, 2, 3].includes(2)); // true
console.log(2 ** 3); // 8
📌 간단하지만 유용한 연산 기능 추가
✅ 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);
}
📌 비동기 코드가 훨씬 간결하고 직관적으로 변경됨
✅ 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"
📌 선택적 체이닝(?.)과 널 병합 연산자(??)는 코드 가독성을 높여줌
✅ Array.at()
(ES13)
✅ import attributes
(ES14)
✅ Set operations (union, intersection)
(ES15 예상)
let arr = [10, 20, 30];
console.log(arr.at(-1)); // 30
📌 배열 조작이 더 직관적으로 개선됨
✅ MDN 웹 문서 – https://developer.mozilla.org/
✅ ECMA 공식 문서 – https://tc39.es/
✅ Chrome V8 블로그 – 최신 엔진 업데이트 확인 가능
📌 최신 브라우저(Chrome, Edge, Firefox)에서는 ES6+ 버전이 기본적으로 지원되므로 최신 기능을 활용하는 것이 좋습니다.
자바스크립트는 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
앞으로도 자바스크립트의 최신 업데이트를 꾸준히 학습하여 더 효율적인 코드 작성이 가능하도록 준비해 보세요! 🚀💡
Windows에서 프린터를 공유하여 사용할 때 0x0000011b 오류가 발생할 수 있습니다. 이 오류는 주로 Windows 보안…
윈도우에서 파일을 복사하거나 폴더를 이동할 때 0x80004001 오류가 발생하는 경우가 있습니다. 이 오류는 "지원되지 않는…
지구의 생명체는 어디에서 왔을까? 이는 인류가 오랫동안 고민해 온 근본적인 질문입니다. 생명의 기원에 대한 다양한…
연구 리서치하는 방법, 알아야할 주의사항들 총정리 현대 사회에서 연구 리서치는 필수적인 과정입니다. 논문 작성, 프로젝트…
주민등록 등본과 초본의 차이점 알아보자, 각각의 쓰임새 정리 주민등록 등본과 초본은 모두 주민등록 정보를 증명하는…