9P by xguru 7일전 | favorite | 댓글과 토론

동기 iterable 그룹화

  • Map.groupBy()는 iterable의 항목을 콜백에서 제공한 키를 가진 Map 항목으로 그룹화
  • Object.groupBy()는 Map 대신 객체를 생성

Promise.withResolvers()

  • resolve하려는 Promise를 생성하는 새로운 방법을 제공

정규 표현식 플래그 /v

  • 새로운 정규 표현식 플래그 /v (.unicodeSets)는 다음 기능을 활성화함:
    • 유니코드 문자열 속성에 대한 이스케이프 (/u를 통한 유니코드 코드 포인트 속성 Emoji/v를 통한 새로운 유니코드 문자열 속성 RGI_Emoji)
    • 문자 클래스 내에서 \q{}를 통한 문자열 리터럴
    • 문자 클래스에 대한 집합 연산
    • [^···]를 통해 유니코드 속성 이스케이프가 부정될 때 /i로 개선된 매칭

ArrayBuffer와 SharedArrayBuffer의 새로운 기능

  • ArrayBuffer:
    • 직접 크기 조정 가능
    • 전송을 위한 .transfer() 메서드 추가
  • SharedArrayBuffer:
    • 크기를 늘릴 수는 있지만 줄일 수는 없음
    • 전송 불가능하므로 ArrayBuffers가 가진 .transfer() 메서드는 없음

문자열이 well-formed인지 확인

  • 두 가지 새로운 메서드로 문자열이 (UTF-16) well-formed인지 확인 가능:
    • String 메서드 .isWellFormed() 는 JavaScript 문자열이 well-formed이고 lone surrogate 를 포함하지 않는지 확인
    • String 메서드 .toWellFormed() 는 각 lone surrogate가 코드 단위 0xFFFD("대체 문자"라는 이름의 동일한 숫자의 코드 포인트를 나타냄)로 대체된 수신자의 사본을 반환하므로 결과는 well-formed임

Atomics.waitAsync()

  • Atomics.waitAsync()를 사용하면 공유 메모리 변경을 비동기적으로 기다릴 수 있음

ECMAScript 2024에 대한 무료 책