-
[string] slice() vs substring()Java Script 2022. 5. 23. 21:58
알고리즘 클럽에서 발표했던 자료를 다시 번역하여 정리했습니다.
substr()은 deprecated 되었기에 slice() 와 substring() 만 다시 비교 정리해보았다.- slice()
- 해당되는 부분을 추출하여 새로운 string을 반환한다.
let str = "Apple, Banana, Kiwi"; let part = str.slice(7, 13); // Banana
- 만일 음수가 매개변수로 주어지면 뒤에서부터 자리를 세어나간다.
let part = str.slice(-12, -6); // Banana
- 하나의 매개변수가 주어지면 그 자리부터 나머지 string 이 반환된다.
let part = str.slice(15); // Kiwi let part = str.slice(-12); // Kiwi
- substring()이 slice() 와 다른 점
- substring() 은 startIndex 와 endIndex 가 반대로 주어지면 자기가 알아서 index 를 바꾸어 결과를 반환한다.
- slice() 는 같은 상황에서 빈 string 을 반환한다.
const text = 'Mozilla'; console.log(text.substring(5, 2)); // "zil" console.log(text.slice(5, 2)); // ""
- substring()은 매개변수로 음수 혹은 Nan이 들어왔을 때 이를 0으로 취급, 빈 string 을 반환한다.
- slice() 역시 Nan을 0으로 취급하지만, 음수는 주어진 string의 뒤쪽부터 찾는 index로 받아들인다.
console.log(text.substring(-5, 2)); // "Mo" console.log(text.substring(-5, -2)); // "" console.log(text.slice(-5, 2)); // "" console.log(text.slice(-5, -2)); // "zil"
정리하자면,
- subString() 은 startIndex & endIndex 알아서 바꾸기 O & 음수 X
- slice() 은 startIndex & endIndex 알아서 바꾸기 X & 음수 O
출처
- mdn: string.slice()
- mdn: string.subString() (<- 중간 부분의 'Differences between subString() & slice()' 가 포인트! (영문))'Java Script' 카테고리의 다른 글
string 의 길이 제한, 근데 언어별로 길이가 다르다면..? (0) 2022.10.12 Delete와 Undefined, 그리고 garbage collector (0) 2022.02.12 커링_ Currying (0) 2021.05.06 Toy project - 카드맞추기 게임 (0) 2021.04.14 Toy Project - 계산기 (0) 2021.04.14 - slice()