Javascript

Slice와 substring의 공통점과 차이점

John' 2023. 11. 28. 19:46

인간은 망각의 동물이다. 특정한 행동이나 생각을 자주 하지 않으면 우리 뇌 속에서는 신경의 가지치기 현상이 일어난다고 한다. 우리가 어떤 생각, 기분, 행동을 수행하지 않으면 뇌는 그와 연관된 뉴런들을 발화시키지 않는데, 그 결과 그러한 생각, 기분, 행동이 점점 약해지다가 결국 시들어버리고 잊게 되는 것을 신경 가지치기라고 한다. 그렇기 때문에 우리는 초등학교 시절처럼 리코더를 연주할 수 없는거고, 곡면의 부피를 구하는 적분 공식이나 근의 공식등에 대해 더는 기억하지 못하는 것이다. 쉽건, 어렵건 지금 나는 무조건 많이 생각하고 자꾸 써보고 사용해보는 것 밖에 방도가 없다 생각한다.

 

 

slice와 substring은 둘 다 JavaScript에서 문자열을 자르기 위한 메서드이지만, 두 메서드의 공통점도 있지만 차이점도 존재하여, 헷갈리지 않도록 정리해 보았다.

 

 

공통점

 

1. 문자열 자르기


slice와 substring은 둘 다 문자열을 특정 범위로 자르는데 사용된다.

 

2. 매개변수


두 메서드는 시작 인덱스와 종료 인덱스를 받아 범위를 지정한다.

 

3. 음수 인덱스


양수 또는 음수 모두를 사용하여 문자열의 뒤에서부터 인덱스를 지정할 수 있다.

 

 

차이점

 

1. 처리 방식


가장 큰 차이점 중 하나는 음수 인덱스를 다루는 방식이다.


slice: 음수 인덱스는 문자열의 끝에서부터의 상대적인 위치를 나타낸다.
substring: 음수 인덱스를 0으로 처리한다.

 

2.매개변수 처리

slice는 시작 인덱스가 종료 인덱스보다 클 경우 두 값을 서로 바꿔 처리한다.
substring은 시작 인덱스와 종료 인덱스 중 더 큰 값을 시작 인덱스로 사용한다.

 

3. 호환성

slice는 배열에서도 사용할 수 있으며, 배열의 일부를 추출할 때도 사용된다.
substring은 문자열에서만 작동한다.

 

4. null 및 undefined:

slice는 null 및 undefined를 가진 문자열에서도 동작한다.
substring은 null 및 undefined를 가진 문자열에서는 동작하지 않을 수 있다.

 

let str = "Hello, World!";

// slice 예제
console.log(str.slice(0, 5));      // "Hello"
console.log(str.slice(7, -1));     // "World"
console.log(str.slice(-6));        // "World!"

// substring 예제
console.log(str.substring(0, 5));  // "Hello"
console.log(str.substring(7, 1));  // "ello"

 

 

이러한 차이점을 고려하여 상황에 맞게 slice 또는 substring 중 하나를 선택할 수 있다.