ES5문법
- 배열과 관련해서 새로운 메소드들이 생겼는데 대표적으로 forEach, map, filter, reduce, some, every와 같은 메소드가 생김.
(이 메소드들은 개발자가 반복 횟수나 조건을 잘못 입력하는 등의 실수를 줄여주는 효과 있음.)
- object에 대한 getter/setter 지원
- 자바스크립트 strict 모드 지원(더욱 세심하게 문법 검사)
- JSON 지원(과거에는 XML을 사용하다가, json이 뜨면서 지원)
- bind() 메소드가 생겼습니다. (this를 강제로 bind 시켜주는 메소드)
ES6문법
- let, const 키워드 추가
- arrow 문법 지원
- iterator / generator 추가
- module import / export 추가
- Promise 도입 ( Callback Hell을 해결해 줄 기법 추가)
- Default, Rest 파라미터
- 해체 할당, Spread 연산자
- 템플릿 리터럴
- 호이스팅이 사라진 것 같은 효과
- 함수 단위 스코프에서 블록 단위 스코프로 변경
- 화살표 함수를 사용
function sum (a, b) {
return a + b;
}
const sum = (a, b) => a + b;
var first = 'hong'
var last = 'gildong'
var name = 'My name is ' + first + ' ' + last + '.'
const name = `My name is ${first} ${last}.`