[javascript] substr(), substring(), slice() 비교

1 분 소요

코테 문제풀면서 비슷하면서도 서로 쓰는 방법이 다른 substr(), substring() , slice() 를 서로 비교하면서 정리해야겠다고 마음먹음.

substr()

string.substr(start, length)

substr() 은 문자열의 start index 부터 length 개만큼 문자열을 잘라내서 문자열을 반환하는 메서드다.

문자열의 인덱스는 0 부터 시작한다.

const str = 'string';

console.log(str.substr(1, 2));
// 결과값 : "tr"  문자열의 시작 index 는 0 이다.

console.log(str.substr(1, 1));
// 결과값 : "t"

console.log(str.substr(2));
// 결과값 : "ring" length 값을 넣지않으면 start 부터 문자열의 끝까지 잘라낸다.

substring()

string.substring(start, end)

substring()함수는 substr() 함수와 같이 특정 문자열을 잘라내여 반환한다.

substr() 함수와 다른 점은 매개변수로 잘라내고 싶은 문자열의 start indexlast index를 전달한다는 것이다.

substr() 함수와 마찬가지로 index는 0부터 시작한다.

const str = 'string';

console.log(str.substring(1, 2));
// 결과값 : "t" last index 의 값은 포함되지않는다. 

console.log(str.substring(1));
// 결과값 : "tring" end 값을 입력하지 않을경우 start 부터 문자열의 끝까지 잘라낸다.

console.log(str.substring(2,2));
// 결과값 : "" start 와 end 가 같으면 빈 문자열을 반환한다.

slice()

string.slice(start, end)

slice() 함수는 substring() 과 사용법이 똑같다. 마찬가지로 start indexlast index 를 전달한다.

const str = 'string';

console.log(str.slice(1, 2));
// 결과값 : "t" last index 의 값은 포함되지않는다. 

console.log(str.slice(1));
// 결과값 : "tring" end 값을 입력하지 않을경우 start 부터 문자열의 끝까지 잘라낸다.

console.log(str.slice(2,2));
// 결과값 : "" start 와 end 가 같으면 빈 문자열을 반환한다.