질문 26 · 실전 면접 답변
ES2015에서 도입된 주요 기능과 이후 기능을 어떻게 구분하나요?
이렇게 답해 보세요 (핵심 답변)
ES2015(ES6)는 let/const, 화살표 함수, class, ES 모듈, 템플릿 리터럴, 구조 분해 할당, 기본·rest 매개변수, 배열 spread, Promise, Map/Set, Symbol, 제너레이터 등을 도입하며 현대 JavaScript의 기반을 만든 표준입니다. 다만 async/await(ES2017)나 객체 rest/spread(ES2018) 등은 이후에 추가된 기능이므로, 모든 최신 문법을 ES6로 뭉뚱그리기보다 대상 런타임과 빌드 도구의 지원 범위를 기준으로 구분합니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 새로운 문법을 하위 버전 코드로 바꾸는 트랜스파일(Transpile)과 Map이나 Promise 같은 새 내장 API를 채워 넣는 폴리필(Polyfill)은 별개의 작업입니다.
- ES2015에서 class 문법이 도입되었지만 JavaScript의 객체 상속 모델이 프로토타입 기반이라는 본질은 변하지 않았습니다.
면접에서 자주 하는 실수
ES6 이후에 나온 모든 모던 JavaScript 기능을 전부 ES6 스펙이라고 부르거나, 트랜스파일만으로 모든 신규 내장 API가 동작한다고 오해하지 않습니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 26번을 바탕으로 질문과 답변을 새로 정리했습니다.