ES는 ECMA Script의 약자
자바스크립트는 1990년대 Netscape 회사의 Brendan Eich 라는 사람에 의해 최초 개발되었다. 자바스크립트가 잘 되자, MS에서 Jscript라는 언어를 개발해 IE에 탑재하였는데, 이 두 스크립트가 너무 제각각이라, 표준이 필요하게 되었다..
표준을 위해 자바스크립트를 ECMA(European Computer Manufactures Association)라는 정보와 통신시스템의 비영리 표준 기구에 제출하였고 표준에 대한 작업을 ECMA-262란 이름으로 1996년 11월에 시작해 1997년 6월에 채택되었다.
ES5는 ECMA Script5의 규격을 따른다고 생각하면 된다.
현재는 ES6 ECMA Script6의 규격을 따르고 있다.
즉 ECMA 스크립트는 규격, 표준 즉, 스펙을 말한다.
ES5문법
- 배열과 관련해서 새로운 메소드들이 생겼는데 대표적으로 forEach, map, filter, reduce, some, every와 같은 메소드가 생김.
이 메소드들은 개발자가 반복 횟수나 조건을 잘못 입력하는 등의 실수를 줄여주는 효과 있음.
2. object에 대한 getter/setter 지원
3. 자바스크립트 strict 모드 지원(더욱 세심하게 문법 검사)
4. JSON 지원(과거에는 XML을 사용하다가, json이 뜨면서 지원)
5. bind() 메소드가 생겼습니다. (this를 강제로 bind 시켜주는 메소드)
ES6문법
- let, const 키워드 추가
- ES5와 대비하여서 ES6에서는 ‘const’, ‘let’ 변수가 추가 되었으며, var 변수보다는 const, let 변수를 '지향'한다.
-
arrow 문법 지원
-
iterator / generator 추가
-
module import / export 추가
- import와 export는 자바스크립트의 코드를 모듈화 할 수 있는 기능이다.
- Promise 도입 ( Callback Hell을 해결해 줄 기법이 추가 되었습니다.)
- async await 패턴은 비동기식 프로그래밍을 일반적인 동기 프로그램과 유사한 방식으로 구성할 수 있도록 많은 프로그래밍 언어에서 제공하는 기능이다.
- promise: 비동기 작업이 맞이 할 미래의 완료 또는 실패와 그 결과 값을 나타낸다.(then, catch, finally)
async: 비동기 함수를 만들기 위해서 명시적으로 작성을 한다
await: async내에서 처리가 완료 될 때까지 기다림을 의미한다.
-
Default, Rest 파라미터
-
구조 분해 할당, Spread 연산자
- 배열이나 JSON, Object 형태에서 속성을 해제하여서 변수로 할당하는 방식을 의미함. 어떤 것을 복사한 이후에 변수로 복사해준다는 의미이다. 이 과정에서 분해 혹은 파괴되지 않는다는 점이 있다.
- 배열 혹은 Object 형태에서 기존에 있는 값을 그대로 유지해서 불러오는 방법 병합, 구조 분배 할당(destructuring)등에 다양하게 활용할 수 있다.
- 템플릿 리터럴
- ES6에서 템플릿 리터럴이라고 불리는 새로운 문자열 표기법이 생겼다. 이전에는 문자열을 표현하기 위해선 ' 또는 "를 사용했는데, 템플릿 리터럴은 백틱을 사용한다. 템플릿 리터럴은 ' 와"를 혼용해서 사용할 수 있다. 그리고 이전에는 줄바꿈을 표현하기 위해선 \n을 넣어줘야 인식을 했지만 템플릿 리터럴은 있는 그대로 인식한다.