ECMAScript 2018

JavaScript의 이름 지정 규약은 ES1, ES2, ES3, ES5, ES6에서 시작되었습니다.

하지만 ECMAScript 2016과 2017은 ES7과 ES8으로 불리지 않습니다.

2016년 이후로 새로운 버전은 연도로 이름 붙여졌습니다(ECMAScript 2016/2017/2018).

ECMAScript 2018의 새로운 기능

이 장에서는 ECMAScript 2018의 새로운 기능을 소개합니다:

  • 비동기 반복
  • Promise Finally
  • 객체 Rest 속성
  • 새로운 RegExp 특성

JavaScript 비동기 반복

ECMAScript 2018는 비동기 반복자와 이터러블 객체를 추가했습니다.

비동기 반복을 통해 우리는 다음과 같이 할 수 있습니다: for/of 루프에서 사용 await 키워드.

实例

for await () {}

Firefox와 Safari는 JavaScript 비동기 반복을 지원하는 첫 번째 브라우저입니다:

크롬과 파이어폭스는 모든 새 RegExp 기능을 지원하는 첫 번째 브라우저입니다: IE 파이어폭스 사파리 오페라
Chrome 63 에지 79 Firefox 57 Safari 11 Opera 50
2017년 12월 2020년 1월 2017년 11월 2017년 9월 2018년 1월

JavaScript Promise.finally

ECMAScript 2018는 다음과 같이 사용합니다: Promise.finally Promise 객체의 완전한 구현을 완료했습니다:

实例

let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();

Chrome와 Firefox는 지원하는 첫 번째 브라우저입니다: Promise.finally 의 브라우저:

크롬과 파이어폭스는 모든 새 RegExp 기능을 지원하는 첫 번째 브라우저입니다: IE 파이어폭스 사파리 오페라
Chrome 63 Edge 18 Firefox 58 파이어폭스 55 Opera 50
2017년 12월 2018년 11월 2018년 1월 2017년 7월 2018년 1월

JavaScript 객체 Rest 속성

ECMAScript 2018는 Rest 속성을 추가했습니다.

이는 우리가 객체를 파괴하고 남은 부분을 새로운 객체에 모을 수 있게 합니다:

实例

let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }

Chrome, Firefox, Opera 는 객체 Rest 속성을 지원하는 첫 번째 브라우저입니다:

크롬과 파이어폭스는 모든 새 RegExp 기능을 지원하는 첫 번째 브라우저입니다: IE 파이어폭스 사파리 오페라
Chrome 60 에지 79 크롬 60 파이어폭스 55 사파리 11.1
오페라 47 2020년 1월 2018년 3월 2017년 7월 2018년 3월

2017년 8월

새로운 JavaScript RegExp 특성

  • ECMAScript 2018은 4개의 새로운 RegExp 특성을 추가했습니다:
  • Unicode 속성 응축 (\p{...})
  • 후행 주제어(Lookbehind Assertions) (?<= )과 (?<! )
  • 이름 지정된 캡처 그룹(Named Capture Groups)

s (dotAll) 기호

크롬과 파이어폭스는 모든 새 RegExp 기능을 지원하는 첫 번째 브라우저입니다: IE 파이어폭스 사파리 오페라
크롬 64 에지 79 파이어폭스 78 사파리 12 오페라 51
2018년 1월 2020년 1월 2020년 6월 2018년 9월 2018년 2월