원문 : https://2ality.com/2024/06/ecmascript-2024.html#the-editors-of-ecmascript-2024
2024년 6월 26일, 제127차 Ecma 총회에서 ECMAScript 2024 언어 사양이 승인되어 이제 공식적으로 표준이 되었습니다.
이 글에서는 새로워진 내용을 함께 살펴보겠습니다.
이번 릴리즈의 저자는 다음과 같습니다.
Map.groupBy()
는 이터러블 내의 아이템을 콜백이 제공하는 키로 그룹화하여 Map entries에 넣습니다.
assert.deepEqual(
Map.groupBy([0, -5, 3, -4, 8, 9], x => Math.sign(x)),
new Map()
.set(0, [0])
.set(-1, [-5,-4])
.set(1, [3,8,9])
);
Map 대신 객체를 반환하는 Object.group()
도 있습니다.
assert.deepEqual(
Object.groupBy([0, -5, 3, -4, 8, 9], x => Math.sign(x)),
{
'0': [0],
'-1': [-5,-4],
'1': [3,8,9],
__proto__: null,
}
);
두 메서드 중에 하나를 선택하는 방법에 대한 팁과 더 많은 예제를 살펴보려면 "자바스크립트 탐구하기"를 참조하세요.
Promise.withResolvers()
Promise.withResolvers()
는 이행(resolve)하기 위한 프로미스를 생성하는 새로운 방법을 제공합니다.
const { promise, resolve, reject } = Promise.withResolvers();
/v
새로운 정규 표현식 플래그 /v (.unicodeSets)
는 다음의 기능들을 제공합니다.
// 이전: /u를 통한 Unicode code point property `Emoji` 사용
assert.equal(
/^\p{Emoji}$/u.test('😵💫'), false
);
// 현재: /v를 통한 Unicode string property `RGI_Emoji` 사용
assert.equal(
/^\p{RGI_Emoji}$/v.test('😵💫'), true
);
\q{}
를 통한 문자열 리터럴> /^[\q{😵💫}]$/v.test('😵💫')
true
> /^[\q{abc|def}]$/v.test('abc')
true
> /^[\w--[a-g]]$/v.test('a')
false
> /^[\p{Number}--[0-9]]$/v.test('٣')
true
> /^[\p{RGI_Emoji}--\q{😵💫}]$/v.test('😵💫')
false
[^...]
를 통해 부정되는 경우 /i
매칭 개선ArrayBuffers에 두 가지 새로운 기능이 추가되었습니다.
const buf = new ArrayBuffer(2, {maxByteLength: 4});
// `typedArray`는 offset 2에서 시작합니다
const typedArray = new Uint8Array(buf, 2);
assert.equal(
typedArray.length, 0
);
buf.resize(4);
assert.equal(
typedArray.length, 2
);
.transfer()
메서드가 추가되었습니다.SharedArrayBuffers의 크기를 늘릴 수는 있지만 이미 할당된 크기를 줄일 순 없습니다. 또한 전송할 수 없기 때문에 ArrayBuffers
에 있는 .transfer()
메서드가 없습니다.
다음의 두 가지 새로운 메서드는 (UTF-16 코드 유닛에 관하여) 문자열이 올바른 형식인지 보장하는 데 도움을 줍니다.
.isWellFormed()
는 자바스크립트 문자열이 올바른 형식이고 론 서로게이트(lone surrogate)를 포함하고 있지 않은지 검사합니다..toWellFormed()
는 론 서로게이트를 코드 유닛 0xFFFD로 교체한 문자열의 복사본을 반환합니다(0xFFFD는 같은 수의 코드 포인트를 나타내며 이름은 "대체 문자" 입니다). 따라서 결괏값은 올바른 형식입니다.Atomics.waitAsync()
Atomics.waitAsync()
을 사용하면 공유 메모리의 변경을 비동기적으로 기다릴 수 있습니다. 더 자세한 내용은 MDN Web Docs를 참고하세요.
제가 집필한 "자바스크립트 탐구하기 (ES2024 판)"는 온라인에서 무료로 보실 수 있습니다. 특히 다음 두 챕터에서 다루고 있습니다.