애드블럭 종료 후 보실 수 있습니다.

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Javascript ES9 문법정리
    JS & TS 2023. 10. 16. 15:40
    728x90

    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

    댓글

Designed by Tistory.