JS

Javascript ES10 문법정리

Kir93 2023. 11. 8. 16:48
728x90
반응형

ECMAScript 2019 (ES10)은 개인적으로 정말 많이 사용하는 flatMap이나 trimStart, trimEnd와 같은 내용이 업데이트된 버전입니다.

IE를 제외하고 대부분의 브라우저가 지원하기 때문에 지금도 쉽게 사용해 볼 수 있습니다.

1. Array.flat() 및 Array.flatMap()

이전: 중첩된 배열을 결합하고 펼치는 것은 종종 사용자 정의 함수나 루프가 필요했습니다.
이후: flat() 및 flatMap()을 사용하면 이 작업을 간단하게 수행할 수 있습니다.

// 이전
const nestedArray = [1, [2, [3, 4], 5]];
const flattenedArray = [].concat.apply([], nestedArray);
// flattenedArray: [1, 2, [3, 4], 5]

// ES10
const nestedArray = [1, [2, [3, 4], 5]];
const flattenedArray = nestedArray.flat(Infinity);
// flattenedArray: [1, 2, 3, 4, 5]

2. String.trimStart() 및 String.trimEnd() (비슷하게 trimLeft, trimRight도 존재)

이전: 문자열의 시작 또는 끝에서 공백을 제거하는 것은 정규 표현식이나 사용자 정의 함수가 필요했습니다.
이후: trimStart() 및 trimEnd()를 사용하면 이 흔한 작업을 간소화할 수 있습니다.

// 이전
const text = "   안녕, 세계   ";
const trimmedText = text.replace(/^\s+/, "");

// ES10
const text = "   안녕, 세계   ";
const trimmedStart = text.trimStart();
const trimmedEnd = text.trimEnd();

3. Object.fromEntries()

이전: 키-값 쌍 배열에서 객체를 생성하는 것은 복잡했습니다.
이후: fromEntries()를 사용하면 쉽게 수행할 수 있습니다.

// 이전
const entries = [['a', 1], ['b', 2], ['c', 3]];
const obj = Object.assign({}, ...entries.map(([key, val]) => ({ [key]: val })));

// ES10
const entries = [['a', 1], ['b', 2], ['c', 3]];
const obj = Object.fromEntries(entries);

4. Object.getOwnPropertyDescriptors()

객체의 속성 설명자를 가져오는 기능이 추가되었습니다.

const obj = { x: 1 };
const descriptors = Object.getOwnPropertyDescriptors(obj);

 

5. Optional Catch Binding

이전: 변수에 바인딩하지 않고 오류를 처리하는 것은 불가능했습니다.
이후: 이제 catch 블록에서 오류 변수를 생략할 수 있습니다.

// 이전
try {
  // 오류가 발생할 수 있는 코드
} catch (error) {
  // 오류 처리
}

// ES10
try {
  // 오류가 발생할 수 있는 코드
} catch {
  // 변수에 바인딩하지 않고 오류를 처리
}
반응형