ECMA스크립트 2018
JavaScript 명명 규칙은 ES1, ES2, ES3, ES5 및 ES6에서 시작되었습니다.
그러나 ECMAScript 2016 및 2017은 ES7 및 ES8이라고 하지 않았습니다.
2016년부터 새 버전의 이름은 연도별로 지정됩니다(ECMAScript 2016/2017/2018).
ECMAScript 2018의 새로운 기능
이 장에서는 ECMAScript 2018의 새로운 기능을 소개합니다.
자바스크립트 비동기 반복
ECMAScript 2018에는 비동기식 반복자와 반복 가능한 항목이 추가되었습니다.
비동기식 이터러블을 사용하면 루프
에서 await
키워드를 사용할 수 있습니다.for/of
예시
for await () {}
Firefox와 Safari는 JavaScript 비동기 반복을 지원하는 최초의 브라우저였습니다.
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
자바스크립트 약속.finally
ECMAScript 2018은 다음을 사용하여 Promise 객체의 전체 구현을 마무리합니다 Promise.finally
.
예시
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Chrome 및 Firefox는 다음을 지원하는 최초의 브라우저였습니다 Promise.finally
.
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
JavaScript 객체 나머지 속성
ECMAScript 2018은 나머지 속성을 추가했습니다.
이를 통해 객체를 파괴하고 남은 재료를 새 객체에 수집할 수 있습니다.
예시
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Chrome, Firefox 및 Opera는 객체 레스트 속성을 지원하는 최초의 브라우저였습니다.
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
새로운 JavaScript RegExp 기능
ECMAScript 2018에는 4개의 새로운 RegExp 기능이 추가되었습니다.
- 유니코드 속성 이스케이프(\p{...})
- 룩비하인드 어설션(?<= ) 및 (?<! )
- 명명된 캡처 그룹
- s(dotAll) 플래그
Chrome과 Firefox는 모든 새로운 RegExp 기능을 지원하는 최초의 브라우저였습니다.
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |