substr, substring, Slice 방식의 차이점에 대한 글은 인터넷에 많이 올라와 있으며, 글의 내용은 기본적으로 동일합니다. 그러다가 테스트를 위해 기사 중 하나의 코드를 로컬 컴퓨터로 옮겼는데, 테스트 결과가 원본 기사와 다소 다른 것을 발견했습니다.
제가 직접 확인한 코드를 더 믿고 나중에 참고할 수 있도록 적어두겠습니다.
substr
document.write("|" str.substr(0,5) "|" "
")
document.write("|" str.substr(0) "| " "< ;br />");
document.write("|" str.substr(5,1) "|" "
");
document.write(" |" str .substr(-5,2) "|" "
");
document.write("|" str.substr(-2,-5) "|" "< br /> ;");
인쇄 효과
|12345|
|123456|
|6|
IE: |12| 크롬: | 23|
하위 문자열
document.write("|" str.substring(0,5) "|" "
")
document.write("|" str.substring (0) "|" "
");
document.write("|" str.substring(5,1) "|" "
"); document.write("| " str.substring(-5,2) "|" "
")
document.write("|" str.substring(-2,-5) " |" "
");
document.write("|" str.substring(2,-5) "|" "
");
인쇄 효과
|12345|
|2345|
|12|
슬라이스 >
코드 복사document.write(" |" str.slice(2,- 5) "|" "
");
인쇄 효과
|12345|
|123456|
|2|
||
기대한 결과가 인쇄 효과와 정확히 같다면 기본 실력이 좋아야 합니다. 조금 망설이시거나 결과가 기대 이상이라면 제 기사가 다소 유용할 것입니다.
요약
substr
이 메소드의 arg2와 다른 두 메소드의 arg2는 단순히 다른 의미를 나타낼 뿐이므로 따로 추출합니다.
arg1<0이면 브라우저마다 결과가 다릅니다. IE는 arg1을 0으로 직접 변경하고 Chrome의 아래 첨자 읽기 방법은 왼쪽에서 오른쪽으로 읽기에서 오른쪽에서 왼쪽으로 읽기로 변경됩니다.
하위 문자열 및 슬라이스
(1) arg2 > arg1, 즉, 매개변수 2가 매개변수 1보다 큰 경우
하위 문자열: 자동으로 위치를 반전시키며, 큰 값은 arg2 위치에 있고, 작은 값은 arg1 위치에 있습니다.
슬라이스: null 문자 반환 문자열
(2) 음수 처리하위 문자열: 음수 값을 갖는 매개변수를 0으로 변환
슬라이스: 음수 값을 갖는 매개변수를 (문자열로 변환) 길이 매개변수 수치)