-
Javascript ES9 문법정리JS & TS 2023. 10. 16. 15:40728x90
ES9(ECMAScript 2018)은 특별히 새로운 기능이 많이 추가되지는 않았지만 지금도 항상 사용하는 내용들이 포함된 버전입니다.
1. 비동기 반복 (Asynchronous Iteration)
ES9에서는 비동기 반복이 가능하도록 for-await-of 루프가 추가되었습니다.
이를 통해 비동기 데이터를 간편하게 반복할 수 있습니다.
// 이전 const asyncData = [asyncFunc1(), asyncFunc2(), asyncFunc3()]; Promise.all(asyncData) .then(results => { for (const result of results) { console.log(result); } }); // ES9 const asyncData = [asyncFunc1(), asyncFunc2(), asyncFunc3()]; for await (const result of asyncData) { console.log(result); }
2. Rest/Spread 프로퍼티 (Rest/Spread Properties)
ES6에서 추가되었던 rest, spread 프로퍼티가 더욱 발전했습니다.
ES9에서는 객체에서의 Rest와 Spread 프로퍼티가 도입되어, 객체의 프로퍼티를 추출하거나 복사하는 작업이 더 쉬워졌습니다.
// 이전 const obj = { a: 1, b: 2, c: 3, d: 4 }; const rest = { c: obj.c, d: obj.d}; console.log(rest); // { c: 3, d: 4 } // ES9 const { a, b, ...rest } = { a: 1, b: 2, c: 3, d: 4 }; console.log(rest); // { c: 3, d: 4 }
3. 정규 표현식 dotAll Flag (Regex dotAll Flag)
정규표현식에 새롭게 추가된 s flag (dotAll)입니다.
원래 . 표현식 에선 개행문자를 제외한 모든 문자였지만, s flag를 달면 개행문자도 포함하게 됩니다.console.info(/js.test/.test('js\ntest')); // false console.info(/js.test/s.test('js\ntest')); // true
4. Promise.finally
ES9에서는 Promise 객체에 finally 메서드가 추가되어, 프로미스가 성공하든 실패하든 무조건 실행되는 코드를 지원합니다.
// 이전 promise .then(()=> { console.log('success'); console.log('finally'); }) .catch(()=> { console.log('error'); console.log('finally'); }); // ES9 promise .then(() => { console.log('success'); }) .catch(error => { console.log('error'); }) .finally(() => { console.log('finally'); });
'JS & TS' 카테고리의 다른 글
Javascript ES11 문법정리 (2) 2023.11.24 Javascript ES10 문법정리 (2) 2023.11.08 Javascript ES8 문법정리 (0) 2023.10.06 Javascript ES7 문법정리 (0) 2023.09.28 Javascript ES6 문법 정리 (0) 2023.09.11