[TIL] JavaScript의 ES란?, ES5/ES6 문법 차이
JavaScript의 ES란?
ECMA(European Computer Manufactures Association) + script 라고보면될것같다.
Script라는 키워드가 붙지만, 자바스크립트는 언어이고, ECMA 스크립트는 규격, 표준을 뜻한다.
ES5/ES6 문법 차이
왜 ES5 와 ES6의 차이냐고 물어본다면 현재 우리가 사용하고 있는 대다수의 forEach, map, filter, reduce, some, every와 같은 주옥같은 메소드 들이 ES5부터 등장했기 때문이고, ES5와 ES6 사이에 개념들이 현재에 이르기까지 개발자들이 유용하게 쓰는 메소드들이 많기 때문에 아마 ECMA 버전에서 큰 영향력을 끼치는 문법이기 때문에 ES5,6의 문법의 차이가 회자되는것같다. 이때문에 취업시장에서는 ES5 와 ES6의 문법차이를 아는지 모르는지에 대해 물어보곤 하는데 이러한 차이점을 잘 설명하기 위해 포스팅을 제작한다.
- ES5특징
1. 배열과 관련해서 새로운 메소드들이 생겼는데 대표적으로 forEach, map, filter, reduce, some, every메소드 등장
2. object에 대한 getter/setter 지원
3. 자바스크립트 strict 모드 지원(더욱 세심하게 문법 검사.)
4. JSON 지원(과거에는 XML을 사용)
5. bind() 메소드가등장. (this를 강제로 bind 시켜주는 메소드)
- ES6특징
1. let, const 키워드 추가 (var의 scope영역 침범이슈)
2. arrow 문법 지원 ()=>{}
3. iterator / generator 추가 ( *next()**를 호출할 때 다음값을 생성해내는 상태 함수형프로그래밍때 배움)
4. module import / export 추가
5. Promise 도입 ( Callback Hell을 해결해 줄 기법이 추가 )
6. Default, Rest 파라미터
7. 해체 할당, Spread 연산자 [...spread]
8. 템플릿 리터럴 `${}`
9. 호이스팅이 사라진 것 같은 효과
10. 함수 단위 스코프에서 블록 단위 스코프로 변경