Javascript & Typescript

[Javascript] substring(), slice() 비교

zubetcha 2021. 11. 13. 14:48

 

 

substring(), slice() 비교

 

 

두 메소드는 문자열의 indexStart 부터 indexEnd 의 직전까지 부분 문자열을 반환한다는 공통점이 있지만 차이점 또한 존재함

 

 

1. indexStart > indexEnd, 시작 인덱스가 종료 인덱스보다 큰 경우

 

  • substring() > indexStart 가 indexEnd 보다 큰 경우 두 위치를 바꿔서 처리
  • slice() > indexStart 가 indexEnd 보다 큰 경우 빈 문자열을 반환

 

 

2. index < 0, 인덱스가 음수인 경우

 

  • substring() > index 가 음수인 경우 index 를 0으로 처리
  • slice() > index 가 음수인 경우에는 문자열의 끝에서부터 인덱스를 계산
  • ex) 문자열의 마지막 인덱스는 음수로 표현하면 -1

 

let text = 'Mozilla';

console.log(text.slice(-5, 2)); // => ""
console.log(text.slice(-5, -2)); // => "zil" index -5 ~ -3 까지 반환

 

 

 

3. index == NaN, 인덱스가 숫자가 아닌 경우 (공통점)

 

  • substring() > index 가 숫자가 아닌 경우 index 를 0으로 처리
  • slice() > index 가 숫자가 아닌 경우 substring() 과 동일하게 index 를 0으로 처리