String의 slice, substring 비교

string.slice(start, stop);
string.substring(start, stop);
  • 공통점
    • start와 stop이 같으면 empty string을 반환
    • 자를 때 stop index는 제외한다.
    • start, stop 둘 중 하나가 string의 length보다 크면, 대신 string의 length를 사용한다.
  • 차이점
    slice

    • start가 stop보다 크면 empty string 반환
    • start가 음수이면 string의 가장 뒤에서 음수만큼 내려온 index로 취급한다.
    • stop이 음수이면 역시 string의 가장 뒤에서 음수만큼 내려온 index로 취급한다.
      (음수만큼 내려왔다는 표현이 추상적이다. 예를들어 'abcde'에서 'abcde'.slice(-3) 이면 'cde'이다.)

    Array의 slice와 다른 점은, Array의 slice에서는 begin은 생략해도 된다. 생략하거나 undefined를 넣으면 자동으로 0에서 시작한다. string에서는 optional이 아니다.


    substring

    • start가 stop보다 크면 자리를 바꾼다.
    • start나 stop이 음수이거나 NaN이면 0을 사용한다.