JS slice, substring, substr
PS를 하다가 문득 slice와 substring, substr의 차이가 헷갈렸다.
사실 substr은 안 헷갈렷고 slice와 substring이 헷갈림
str.substr(start[, length])
substr은 시작점과 길이를 인자로 가지며 start 인덱스부터 length개까지를 잘라서 반환한다.
ECMA-262 표준에서
… 본 부록이 포함한 모든 언어 기능과 행동은 하나 이상의 바람직하지 않은 특징을 갖고 있으며 사용처가 없어질 경우 명세에서 제거될 것입니다. …
… 프로그래머는 새로운 ECMAScript 코드를 작성할 때 본 부록이 포함한 기능을 사용하거나 존재함을 가정해선 안됩니다. …
라고 하니 PS 이외엔 다른 방법을 사용하는 것이 바람직할거 같다.
str.substring(indexStart[, indexEnd])
substring은 시작 인덱스와, 포함하지 않는 마지막 인덱스를 인자로 가진다.
항상 헷갈리는 건데, 마지막 인덱스는 포함하지 않는 것이다
'abcde'.substring(1,3)
이라면 b,c만 포함되고 3번쨰 인덱스인 d는 포함되지 않는다.
str.slice(beginIndex[, endIndex])
slice도 시작 인덱스와 포함하지 않는 끝 인덱스를 인자로 가진다.
차이점은 시작 인덱스가 끝 인덱스보다 크거나, 음수 인덱스가 들어왔을때 있다.
indexStart > indexEnd
slice는 빈 문자열("")을 리턴
substring은 둘을 뒤집은 결과를 리턴( substring(indexEnd,indexStart)값 리턴 )
음수 인덱스일때
slice는 문자열 뒤에서부터 센다. -2의 인덱스는 문자열 마지막에서 2번째 인덱스를 의미
substring은 0으로 취급
What is the difference between String.slice and String.substring?
Does anyone know what the difference is between these two methods? String.prototype.slice String.prototype.substring
stackoverflow.com
'TIL' 카테고리의 다른 글
| TIL 2022-01-19 JS 중복된 값 제거, useLayoutEffect, useImperativeHandle, 힙소트 관련 (0) | 2022.01.19 |
|---|---|
| git branch, checkout, reset revert 차이 (0) | 2022.01.17 |
| TIL 2022-01-13 CSS in JS, ParserOptions.project error (0) | 2022.01.13 |
| TIL 2022-01-12 webpack-hot-middleware, webpack-dev-middleware, FFMPEG.WASM (0) | 2022.01.12 |
| TIL 2022-01-11 HTMLWebpackPlugin, git reflog, (0) | 2022.01.12 |
