728x90
ES란 ?
ECMAScript의 약자이며, JavaScript의 토대를 구성하는 스크립트 언어이다. ECMAScript는 쉽게 말하면 ECMA라는 비영리 단체가 만든 ECMA-262라는 기술 규격에 따라서 정의한 표준화된 스크립트 언어다. ES5, ES6 등은 ECMAScript의 버전5, 버전6같은 개념이다.
ECMAScript와 JavaScript는 관계성이 짙다. JavaScript의 표준화를 위해 만들어진 게 ECMAScript, JavaScript는 ECMAScript의 사양을 표준으로 따르는 언어다.
ES5
- 배열에 forEach, map, filter, reduce, some, every와 같은 메소드 지원
- 개발자가 반복 횟수나 조건을 잘못 입력하는 등의 실수를 줄여주는 효과가 있다.
- Objectdp getter, setter 지원
- JavaScript의 strict 모드 지원
- 더욱 세심하게 문법 검사를 한다.
- JSON 지원
- blind() 메소드 생성
- this를 강제로 bind 시켜주는 메소드이다.
ES6
- 변수를 선언할 때 함수 스코프를 가진 var키워드를 대체하기 위해 여타 언어와 똑같이 블럭 스코프를 가진 let, const 키워드 추가
- let은 변수가 선언된 블록(하위블록 포함), 구문 또는 표현식 안에서 유효함
function varTest() { var x = 1; if (true) { var x = 2; // 상위 블록과 같은 변수! console.log(x); // 2 } console.log(x); // 2 } function letTest() { let x = 1; if (true) { let x = 2; // 상위 블록과 다른 변수 console.log(x); // 2 } console.log(x); // 1 }
- const는 블록범위의 상수. let과 달리 값의 재할당 및 재선언이 불가
const myAge = 8 myAge = 9 // Error
- let은 변수가 선언된 블록(하위블록 포함), 구문 또는 표현식 안에서 유효함
- arrow 문법 추가
- 익숙하면 편하고 간결해진 코드 작성 가능
- this 바인딩을 하지 않는다. (this를 동적으로 바인딩하지 않는다.)
-
// ES5 var total = values.reduce(function(a, b) { return a + b; }, 0); // ES6 var total = values. reduce((a, b) => a + b, 0);
- iterator, generator 추가
- module import, export 키워드 추가
- 콜백지옥에서 고통받던 개발자들을 위해 비동기 처리하는 Promise 객체 추가
- Template Strungs/ Template Literals
- 큰 따옴표("")나 작은 따옴표('') 대신 백틱(``)을 사용. 플레이스 홀더를 사용하여 표현식을 사용함
-
// ES5 var username = req.body.username if ( !username ) { throw "'username' must required. Your input: " + username + "." } // ES6 let = req.body if ( !username ) { throw `'username' must required. Your input: $.` }
ES7
- 제곱연산자(**) 추가
- Array.includes 추가
ES8
- async/await 추가
참고링크
728x90
'IT > JavaScript' 카테고리의 다른 글
Java Script - Class (0) | 2021.12.06 |
---|---|
Java Script - this (0) | 2021.12.06 |
Java Script - 객체지향 프로그래밍 (0) | 2021.12.06 |
Java Script - 객체지향 (0) | 2021.12.06 |
Java Script (0) | 2021.11.09 |