ES2015 문법의 특징

2019. 9. 11. 15:19카테고리 없음

1. let과 const

 

ES2015 전까지는 변수 선언을 위해 var를 사용

하지만 var는 호이스팅하기 때문에 변수를 중복 선언해도 오류가 발생하지 않는다.

 

호이스팅이란? 

https://yuddomack.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%ED%98%B8%EC%9D%B4%EC%8A%A4%ED%8C%85Hoisting

 

자바스크립트 호이스팅(Hoisting)

자바스크립트의 변수는 다른 언어들과 조금 다르게 동작합니다. 이는 때때로 개발자로 하여금 의도하지 않은 결과를 발생시키기도 합니다. es2015 이후로 let이나 const를 사용하여 예방할 수 있지만 Closure같은..

yuddomack.tistory.com

 

또한, var는 함수 단위의 스코프만 지원하고 블록 단위의 스코프는 지원하지 않습니다.

함수 말고 {}안에 선언된 변수들은 별도의 스코프를 가지지 않습니다.

 

이 문제를 해결하고자 let, const가 나왔습니다.

 

let, const는 변수의 중복 선언이 불가능하고 블록 단위의 스코프를 가집니다.

 

*const로 선언된 변수는 한번 값이 주어지면 다시 변경할 수 없습니다.(다만 리스트의 경우 각 요소의 값은 바꿀 수 있습니다.)

 

2. 기본 파라미터와 가변 파라미터

 

기본 파라미터를 이용해 함수 파라미터의 기본값을 지정할 수 있습니다.

 

가변 파라미터를 이용해 여러개의 파라미터 값을 배열로 받을 수 있습니다.(ex) function abc(name, age, ...foods)

...foods -> 가변 파라미터

 

3. 구조분해 할당

 

배열, 객체의 값들을 추출하여 여러 변수에 할당할 수 있다.

 

4. 화살표 함수

 

함수를 둘러싸고 있는 영역의 this를 화살표 함수 내부에서 this로 그대로 사용

 

5. 객체 리터럴

 

6. 템플릿 리터럴

 

7. 컬렉션

set, map, weakset, weakmap과 같은 집합, 맵을 제공

 

8. 클래스

클래스를 공식적으로 지원 -> 상속도 지원

 

9. 모듈

모듈 -> 독립성을 가진 재사용 가능한 코드 블록(파일 단위로 모듈 생성)

 

단일 객체, 클래스, 함수를 export -> export default 사용

 

10. promise