[심화] substr / substring / slice 의 차이점이 뭘까?

728x90

substr( ) / substring( ) / slice( )

substr(startIdx, length)

startIdx 부터 length 길이만큼 string 에서 잘라서 반환

기존 배열 업데이트 X

let str = "네이버 부스트캠프";
let result = str.substr(2, 5);

console.log(str);    // 네이버 부스트캠프  
console.log(result); // 버 부스트


substring(startIdx, endIdx)

startIdx 부터 endIdx 전까지 string 에서 잘라서 반환
startIdx > endIdx 인 경우 : startIdx 값과  endIdx 값을 바꾸어 처리  
startIdx < 0 인 경우 : startIdx 값을  0 으로 바꾸어 처리 (endIdx 값도 마찬가지)

기존 배열 업데이트 X

let str = "네이버 부스트캠프";  
let result1 = str.substring(4, 6);  
let result2 = str.substring(7, 2);  
let result3 = str.substring(4, -2);

console.log(str);     // 네이버 부스트캠프  
console.log(result1); // 부스  
console.log(result2); // 버 부스트  
console.log(result3); // 부스트


slice(startIdx, endIdx)

startIndx 부터 endIdx 전까지 string 에서 잘라서 반환
startIdx > endIdx 인 경우 : 비어있는 string, 공백("")을 반환  
startIdx < 0 인 경우 : 가장 뒤에서 절댓값만큼 내려온 인덱스로 바꾸어 처리 (endIdx 값도 마찬가지)  
startIdx < 0 && |startIdx| > string.length : 해당 인덱스를 0 으로 바꾸어 처리
기존 배열 업데이트 X

let str = "네이버 부스트캠프";  
let result1 = str.slice(1, 7);  
let result2 = str.slice(5, 1);  
let result3 = str.slice(4, -1);  
let result4 = str.slice(-10, 6);

console.log(str);     // 네이버 부스트캠프  
console.log(result1); // 이버 부스트  
console.log(result2); //  
console.log(result3); // 부스트캠  
console.log(result4); // 네이버 부스

 

728x90