substr vs substring vs slice

KHW·2021년 6월 25일
0

Javascript 지식쌓기

목록 보기
49/95

substr

  • string.substr(start, length)

    start index부터 length 길이만큼 잘라낸다.

substring

  • string.substring(start, end)

    매개변수로 잘라내고 싶은 문자열의 start index와 last index를 전달

slice

  • string.slice(start, end)

    매개변수로 잘라내고 싶은 문자열의 start index와 last index를 전달


예시코드

let alpha = "abcdefg";

console.log(alpha.substr(1, 3));		//bcd
console.log(alpha.substr(2, 3));		//cde
console.log(alpha.substring(1, 3));		//bc
console.log(alpha.substring(2, 3));		//c
console.log(alpha.slice(1, 3));			//bc
console.log(alpha.slice(2, 3));			//c

일반적으로 substring과 slice는 동작이 거의 유사하고 substr만 2번째 매개변수가 length라서 반복되는 상태를 유지하는 갯수를 찾는데 유리하다. (substring,slice는 매번 매개변수 2개를 전부 바꿔야하므로)


substring vs slice

let alpha = "abcdefg";

console.log(alpha.substring(-3));	//abcdefg
console.log(alpha.slice(-3));		//efg
console.log(alpha.substring(-3, 3));	//abc
console.log(alpha.slice(3, -1));	//def
console.log(alpha.slice(3, 6));		//def

substring에서 start나 stop이 음수이거나 NaN이면 0을 사용한다.
=> 즉, 0으로 인식하여 처리한다.

slice의 경우 start가 음수면 뒷자리부터 생각하여 처리하고
end가 음수이면 뒷자리의 문자로 인식하여 그 이전까지 slice를 처리한다.
(end가 -1이라는 건 마지막자리인 g와 같고 이것은 end가 6인 것과 같으므로 마지막 2개의 결과는 같다.)


정리

반복해서 문자열을 빼내는 것이면 2번째 매겨변수를 고정시키는 substr이 편하고 나머지는 slice를 이용하자

출처

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글