문자열 내에 있는 요소가 위치한 첫 번째
인덱스를 리턴, 존재하지 않을 경우 -1
을 리턴
let str = 'code states'
console.log(str.indexOf('s')) // 5
console.log(str.indexOf('i')) // -1
지정한 구분자를 이용하여 문자열을 구분한 다음 배열로 리턴
let str = '사과, 바나나, 오렌지, 배, 감, 딸기';
let word = str.split(', ');
console.log(word); //['사과', '바나나', '오렌지', '배', '감', '딸기']
문자열의 시작과 끝(끝-1)에 대한 복사본을 새로운 배열 객체로 리턴, 원본 배열은 바뀌지 않음.
const str = 'codestates';
str.slice(0,2); //'co'
subString(start,end)
vs slice(start,end)
substring
의 경우 substring(1,0)
은 substring(0,1)
로 바꿔서 처리함
slice
의 경우에는 빈 string을 리턴한다.
slice
의 경우 맨 뒤에서 음수의 절대값만큼 내려온 index로 취급
let str = "안녕하세요?"
let slice_1 = str.slice(-2, 6); // 요?
subString
의 경우 start
의 값이 음수인 경우 0으로 취급
let str = "안녕하세요?"
let substring_1 = str.substring(-2, 6); //안녕하세요?
Immuatable를 검색해보면 불변객체라고 나오는데 즉, 변하지 않는 객체를 말한다.
다음 코드를 한번 보자.
var str='code';
str[0]='G';
console.log(str[0]);
코드만 보자면 str 변수의 첫번째 값을 G
로 바꿨으니 'Gode'
가 나올 것이다.
하지만 출력해보면 'code'
가 그대로 나온다.
기본적으로 string은 불변이기 때문에 변형하거나 수정할 수가 없기 때문에 저런 결과가 나온것이다.
참고 자료
Primitives in JavaScript: You Can’t Change Index[0] of a String
substr(), substring(), slice() 비교
오늘 페어프로그래밍은 제어문과 문자열에 대한 문제였는데 제어문 파트에서 생각보다 문제도 많고 고민도 많이 했던 거 같다.