Overview
JavaScript 에서는 마지막 부분을 잘라내는 방법 (drop
) 이 여러 가지 있습니다.
그 중에서 가장 일반적으로 사용하는 게 substring
과 slice
인데 둘의 사용법과 차이점을 알아봅니다.
1. substring
string.substring(start, end);
substring
은 이름 그대로 문자열의 일부를 구하는 함수이며 사용법은 위와 같습니다.
잘라내고자 하는 문자열의 시작 (start
) 과 끝 (end
) 인덱스를 입력합니다.
가장 헷갈릴 만한 점은 start
는 자르는 대상에 포함되고 end
는 포함되지 않습니다.
Example
// 마지막 문자 n 개 버리기
string.substring(0, string.length - n);
마지막 문자들만 버릴 예정이므로 start
는 무조건 0 으로 하고 자를 문자의 갯수만큼 n
을 입력하면 됩니다.
2. slice
string.slice(start, end);
slice
는 substring
과 사용법과 문법이 완전히 같습니다.
하지만 단 하나의 차이가 있다면 파라미터로 음수값을 넘길 수 있다는 점입니다.
음수값은 쉽게 이해하자면 -n == string.length - n
으로 생각하면 됩니다.
Example
// 마지막 문자 n 개 버리기
string.slice(0, -n);
음수를 사용할 수 있다는 점 때문에 substring
보다 훨씬 간결합니다.
Conclusion
사용법은 비슷하지만 음수 파라미터의 사용이 가능한 slice
가 훨씬 사용하기 편한 것 같습니다.
StackOverflow 에서는 substring
이 속도가 더 빠르다는 결과도 있었던 것 같은데, 과거의 이야기고 현재는 비슷하다고 하네요.
실제로 벤치마크 가능한 사이트에서 slice vs substr vs substring 을 테스트 해보면 비슷하게 나옵니다.
Reference
'Language > JavaScript' 카테고리의 다른 글
JavaScript - Set 자료구조 (ES6) (0) | 2021.09.30 |
---|---|
[Javascript] ES6 템플릿 리터럴 (0) | 2020.05.17 |
[Javascript] ES6 비동기 프로그래밍 2 (async await) (0) | 2020.05.17 |
[Javascript] ES6 비동기 프로그래밍 1 (Promise) (0) | 2020.05.17 |
[Javascript] ES6 함수 (function) (0) | 2020.05.08 |