ECMAScript 2024 승인 : 새로운 기능은?
(2ality.com)동기 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임
- String 메서드
Atomics.waitAsync()
Atomics.waitAsync()를 사용하면 공유 메모리 변경을 비동기적으로 기다릴 수 있음
ECMAScript 2024에 대한 무료 책
- "Exploring JavaScript (ES2024 Edition)"은 온라인에서 무료로 읽을 수 있음. 특히 관련 있는 두 챕터
- "History and evolution of JavaScript": ECMAScript vs. JavaScript, TC39, TC39 프로세스, ECMAScript 제안 등
- "New JavaScript features": 각 ECMAScript 버전의 새로운 기능은 무엇인가?
GeekNews Weekly에 포함된 글입니다.
에디터 코멘트 보기