Javascript에서 substr(), substring(), slice() 함수는 모두 문자열을 잘라주는 역할을 합니다.
지금까지 문제를 풀어보면서 계속 헷갈리다보니 이렇게 정리하게 되었습니다.
string.substr(start, length)
string.substring(startindex, endindex)
slice()
substring() 함수와 사용법이 같습니다.
start index와 end index를 전달합니다.
두번째 인자를 넘기지 않으면, 시작 인덱스가 가리키는 값부터 배열의 마지막 값까지 모두 복사해줍니다.
음수전달이 가능하고 -1이면 배열의 맨 마지막 값을 추출
slice, substring의 차이
slice() 는 음수 파라메터가 전달되어도 그대로 작동하지만 substring() 음수가 전달되면 인덱스0으로 인식한다. slice()의 경우 만약 음수 파라미터값이 string 길이보다 크다면 이때는 인덱스0으로 처리됩니다.
start > end 인 경우
1) substring() :
start 값과 end 값을 바꾸어서 처리합니다.
위 예제에서 substring(1, 0)은 실제로는 substring(0, 1)로 처리되어 string의 첫번째 글자 하나를 리턴합니다.
2) slice() :
그냥 비어있는 string, slice(-2,-2)즉 ""을 리턴합니다.slice(-3,-2)이렇게하면 한글자는 나옴
slice(-1,1)의 경우 시작 index가 끝이라고 처음이랑 이어지지않음 ''리턴함
순서는 무조건 왼쪽에서 오른쪽 오른쪽에서 왼쪽이 되진않음!
위의 함수들과 배열에서 사용되는 함수이며 이 함수는 startindex,length를 받지만 추가적으로 3번째 파라메타로 삭제 후 더해질 요소를 원본상태에 추가할 수 있는 함수이다.
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
var arr1 = arr.splice(10, 2, 'a', 'b', 'c');
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "a", "b", "c"]
console.log(arr1); // [11, 12]
-함수 사용정리-
배열 : slice,splice 사용가능
문자열 : substr,substring,slice 사용가능