개발지식

[JS]ES2023에서 추가된 자바스크립트 기능

weaklion 2023. 7. 3. 15:25

ECMA 2023에서 총 4가지 제안이 적용되었습니다.

배열에 대한 제안, 해시뱅, Weakmap으로 여기선 배열에 대한 제안 중심으로 서술해보겠습니다.

 

마지막 기준 배열 찾기

Array와 TypedArray 프로토타입에 findLast()메서드와 findLastIndex() 메서드가 추가되었습니다.

이름에서 알듯이 배열의 마지막부터 시작해 찾게되는 메서드 입니다. 

const arr = ['a','b','a','b'];

arr.findIndex((ele) => ele === 'a') // 0
arr.findLastIndex((it) => it === 'a') // 2
const arr = [5,12,50,120]
arr.find((ele) => ele > 30) // 50
arr.findLast((ele) => ele > 30) // 120

 

복사후 배열 변경

JS에에는 배열에 대한 다양한 메서드들이 존재합니다.

각 메서드들은 리턴되는 값이 다르고 배열을 수정하는 메서드도 존재합니다.

reverse(), sort(), splice() 메서드 등이 대표적이죠.

따라서 이번엔 원본 배열을 수정하지 않고, 새로운 배열을 이용해 메서드를 사용할 수 있도록 새로운 메서드들이 추가되었습니다.

 

toReversed()

const arr = [1, 2, 3, 4];
arr.toReversed() // [4, 3, 2, 1]
arr // [1, 2, 3, 4]

 

toSorted()

const arr = [1, 2, 3, 4];
arr.toSorted((a, b) => a - b) // [4, 3, 2, 1]
arr // [1, 2, 3, 4]

 

toSpliced()

const arr = [1, 2, 3, 4];
arr.toSpliced(1, 2, 99) // [1, 99, 4]
arr // [1, 2, 3, 4]

 

with()

이번에 새롭게 생긴 메서드로, 원본 배열의 변형 없이 새로 복사된 배열을 반환합니다.

복사한 새로운 배열의 주어진 요소를 다른 요소로 바꾸는 메서드입니다.

const arr = [5, 12, 50, 130, 44];
arr.with(1,100) // [5,100, 50, 130, 44)
arr.with(5,100) // Invalid index : 5
arr // [5, 12, 50, 130, 44]