[TIL - 2022.6.27] 문자열 / 페어프로그래밍 후기

Jeong Ha Seung·2022년 6월 27일
0

부트캠프

목록 보기
4/51

String Method

1. indexOf

문자열 내에 있는 요소가 위치한 첫 번째 인덱스를 리턴, 존재하지 않을 경우 -1을 리턴

let str = 'code states'

console.log(str.indexOf('s')) // 5
console.log(str.indexOf('i')) // -1

2. split()

지정한 구분자를 이용하여 문자열을 구분한 다음 배열로 리턴

let str = '사과, 바나나, 오렌지, 배, 감, 딸기';

let word = str.split(', ');
console.log(word); //['사과', '바나나', '오렌지', '배', '감', '딸기']

3. slice(start,end)

문자열의 시작과 끝(끝-1)에 대한 복사본을 새로운 배열 객체로 리턴, 원본 배열은 바뀌지 않음.

const str = 'codestates';
str.slice(0,2); //'co'

subString(start,end) vs slice(start,end)

1. start > end일 경우의 처리

substring의 경우 substring(1,0)substring(0,1)로 바꿔서 처리함
slice의 경우에는 빈 string을 리턴한다.

2. start 또는 end 값이 음수인 경우

slice의 경우 맨 뒤에서 음수의 절대값만큼 내려온 index로 취급

let str = "안녕하세요?"

let slice_1 = str.slice(-2, 6); // 요?

subString의 경우 start 의 값이 음수인 경우 0으로 취급

let str = "안녕하세요?"

let substring_1 = str.substring(-2, 6); //안녕하세요?

Immutable에 대하여

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() 비교

오늘 페어프로그래밍은 제어문과 문자열에 대한 문제였는데 제어문 파트에서 생각보다 문제도 많고 고민도 많이 했던 거 같다.

profile
블로그 이전했습니다. https://nextjs-blog-haseungdev.vercel.app/

0개의 댓글