Dev./javascript

[JS] slice, splice endIndex에 undefined 넣었을 때

인쥭 2022. 5. 16. 10:44
반응형
const arr1 = [1, 2, 3];
const arr2 = [1, 2, 3];

const sliced = arr1.slice(0, undefined);
const spliced = arr2.splice(0, undefined);

console.log(`original: ${arr1} / sliced: ${sliced}`);
console.log(`original: ${arr2} / spliced: ${spliced}`);

/* 실행 결과
original: 1,2,3 / sliced: 1,2,3
original: 1,2,3 / spliced: 
*/
  • slice: 원본 배열에서 인수에 전달된 범위를 잘라오지만, 원본 배열은 수정하지 않는다.
  • splice: 원본 배열에서 인수에 전달된 범위만큼 자르며, 원본 배열도 수정된다.
  • undefined를 전달했을 경우 slice는 끝까지 자르고, splice는 자르지 않는다는 차이점이 있다.

왜 다르게 했을까