코딩테스트/프로그래머스 기초 트레이닝

[Javascript] 테스트에서 사용한 문자열 객체 메소드 정리 - replaceAll() includes() charAt()

dev_swH 2023. 5. 22. 22:42

(1) replaceAll()

replaceAll() 메소드는 A과 일치하는 항목 전부를 B로 바꿔서 새로운 문자열로 반환한다.

사용 방식 :
replaceAll(패턴, 대체)

패턴 - 바꿀 대상. 일반 문자열도 가능하고 정규식도 가능하다.
대체 - 바꿀 내용. 일반 문자열도 가능하고 함수도 가능하다.

replace()와의 차이

replace()도 매개변수에 정규식을 넣으면 모든 항목을 교체해주지만,

매개변수로 문자열을 넣을 경우에는 첫 번째로 일치하는 문자열만 교체해준다.

그래서 문자열만으로 간단하게 처리하고 싶을 경우에는 replaceAll() 메소드를 사용해야 한다.

 

(2) includes()

includes()는 문자열 객체에도 있고, 배열 객체에도 있는 메소드다.

매개변수로 주어진 문자열(혹은 요소)이 해당 문자열(혹은 배열)에 있는지 판별하고, true / false 를 반환한다.

같은 의미지만 문자열 객체 한정으로 다르게 표현하자면 'A가 B의 부분 문자열인지를 판별하는 메소드'라고도 정의할 수 있다.

사용 방식은 두 객체 모두 동일하다.

includes(찾으려는 문자열/요소)
includes(찾으려는 문자열/요소, 찾기 시작할 위치)

 

객체 상관없이 판별 대상이 문자일 경우, 대소문자를 구분해서 판별하므로 주의!!

대소문자를 구분하지 않고 판별하고 싶을 경우에는 toLowerCase() / toUpperCase()를 사용해

판별할 객체와 매개변수로 넣을 문자열을 모두 소문자 / 대문자로 변환시킨 다음 includes() 메소드를 사용하면 된다.

 

(3) charAt()

charAt()은 문자열에서 특정 인덱스에 위치하는 문자를 반환한다.

사용 방식 : 
charAt(인덱스 숫자)

생략할 경우 기본값 0이 적용되어 맨 앞글자를 반환한다.

 

String.charAt(index)와 String[index]는 거의 같은 기능이다.

문자열의 마지막 순번을 조회할 때 매개변수로 String.length - 1을 넣는 것까지 동일하다.

 

한 가지 다른 점이 있다면 매개변수 index가 문자열의 범위를 넘어섰을 때의 결과값이다.

String.charAt()의 경우, 범위를 벗어난 인덱스를 조회하면 빈 문자열 ""을 반환한다.

반면 String[index]의 경우, 범위를 벗어난 인덱스를 조회하면 undefined를 반환한다.

빈 문자열도 결국 false값이라 연계된 연산이 있다면 이후에 똑같이 오류가 나겠지만,

출력이 다르게 나오는 사실 자체만으로도 프론트에서는 꽤 중요하니까 기억해두자.