동기 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에 대한 무료 책