자바스크립트 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() | ✅ | 제거된 요소 | 데이터 수정 |