자바스크립트 slice()

 

 

slice()

 

새로운 배열 또는 문자열을 반환하는 메서드

 

slice( start, end )

  • start: 시작 인덱스 (포함)
  • end: 종료 인덱스 (미포함) — 생략하면 끝까지
  • 음수 인덱스 사용 가능 (-1은 마지막 요소)

 

 

✅ 배열에서 사용

const arr = [1, 2, 3, 4, 5]; 
const result = arr.slice(1, 4);

console.log(result); // [2, 3, 4]

✅ 문자열에서 사용

const str = "Hello, world!"; 
const result = str.slice(0, 5); 

console.log(result); // "Hello"

✅ 음수 인덱스 사용

const nums = [10, 20, 30, 40, 50]; 

console.log(nums.slice(-2)); // [40, 50] 
console.log(nums.slice(-4, -1)); // [20, 30, 40]

장점

  • 불변성 유지: 원본 배열/문자열을 변경하지 않음
  • 사용법이 간단하고 직관적임
  • 문자열과 배열 모두에서 사용 가능

 

단점

  • 새로운 객체 생성 → 메모리 사용 증가 가능성
  • 원본 데이터 수정 불가 → 수정은 splice() 필요
  • 대용량 데이터 처리 시 성능 이슈 발생 가능

 


비슷한 메서드와 차이점

 

메서드 원본 변경 반환값 용도
slice() ❌  잘라낸 부분 읽기 전용, 불변
splice() ✅  제거된 요소 데이터 수정