본문 바로가기
Study/JavaScript

JavaScript의 ES란?, ES5/ES6 문법 차이

by 김만두_ 2022. 11. 28.

ES란

ECMA Script의 약어이며 자바스크립트의 표준 규격을 나타내는 용어.

JavaScript를 표준화시키려고 탄생했다.

 

JavaScript의 역사는 점점 깊어지고, 문법의 보완이 필요하면서 버전별로 문법을 확장시키고 브라우저는 특정 버전의 기능별로 지원할 수 있도록 ES가 명세를 확정해왔다.
ECMA Script는 JavaScript를 표준화시키고, 규격화하기 위해 만들어진 것이다.

현재는 ES10 버전까지 나왔고, 주로 쓰이는 것은 ES6인데, 6은 버전 이름이며 ES 2015라고도 한다. 2015년에 ES6버전이 최종으로 나왔기 때문에 그렇게 불린다.

 

ES5/ES6 문법 차이

ES5 (2009)
배열에 forEach, map, filter, reduce, some, every와 같은 메소드들이 지원되었다.
Object에 대한 getter와 setter가 지원되었다.
Javascript strict모드가 지원되었다. (기존에 비해서 더 엄격하게 문법 검사를 진행한다.)
json 형식의 자료들을 지원하기 시작

 

ES6 (ES 2015)

const and let
- const

ES6에서 변수를 선언하기 위한 새로운 키워드

const는 객체와 함께 사용할 때를 제외하고는 변경 불가능한 변수

- let

새로운 값을 받을 수도 있고 재할당할수도 있음 변경 가능한 변수가 생성.

과거 es5이하 문법에서는 var로 선언된 변수가 ‘호이스팅(hoisting)’되는 현상이 일어나는 side effect를 최소화 하기위해 변경 가능한 변수에 대해 let 키워드로 정의.

 

화살표함수
 javascript에서 함수를 정의하는 function 키워드 없이 함수를 만들 수 있으며, return 키워드 없이, 식을 계산한 값이 자동으로 반환.

() 안에 함수의 인자가 들어가고, => 오른쪽에는 결과를 반환

 

비구조화 할당
비구조화 할당은 객체와 배열로부터 프로퍼티를 쉽게 꺼낼 수 있는 문법.

비구조화 할당을 사용하면 객체를 나타내는 중괄호를 열고 그 안에 있는 프로퍼티들을 언급함으로써 간단하게 내부의 속성들을 외부로 인출하여 사용할 수 있음

 

for…of 문
특정 행위를 반복시켜 결과값을 얻어야할때 반복문을 사용.

반복 가능한 객체(iterable)를 for문 안에서 반복시켜 연속된 결과값을 얻게된다.

 

Spread Operator
spread 연산자는 특정 객체 또는 배열의 값을 다른객체나 배열로 복제하거나 옮길때 사용.