[JavaScript] ES2022


ES2022

ECMAScript 2022 자바스크립트 업데이트 기능 소개

ㅁ TOP LEVEL AWAIT

  • 모듈의 비동기 함수 외부에서 기다림
  • 기존 비동기 함수 외부에서 await 키워드를 선언할 수 없었지만, 비동기 함수 및 클래스 외부에서 await 연산자를 선언해 동기화 문제 해결
//as-is
(async function () {
  await startServer();
})();

//to-be
await startServer();

ㅁ ERROR CUASE

  • 오류의 원인을 설명해 개선된 오류 메시지 제작
//as-is
new Error("Error!!");

//to-be
const err = new Error("A better Error!!", {cause: "Error Cause"});

err.message; //A better Error!!
err.cause; //Error Cuase

ㅁ .at()

  • 양수 및 음수 인덱스를 모두 사용한 문자열 인덱싱
  • -1을 이용한 뒤로 검색으로 []와의 차이
const nums = ["1","2","3","4","5"]

nums.at(2); //3
nums.at(-1); //5

ㅁ CLASS FIELDS

  • JS의 OOP화(?)
  • Private#, static 메서드 및 속성
  • constructor 불필요
//private 메서드나 속성을 위해 #기호를 접두사로 선언
class Message {
  #destruct() {
    console.log("Hi");
  }
}

const btn = new Messege();
btn.#destruct(); //작동X

//as-is
class Message {
  constructor() {
    this.text = "Hi";
  }
}

//to-be
class Message {
  #text = "Hi";
}
//static 메서드
//as-is
class Message {
}
Message.build(){}

//to-be
class Message{
  static build(){}
}

class Message{
  static #build(){} //비공개
}

댓글남기기