[Javascript] 내장 객체 - String

Bam·2022년 2월 25일
0

Javascript

목록 보기
40/106
post-thumbnail
post-custom-banner

내장 객체

내장 객체는 자바스크립트에 기본적으로 탑재되어 있는 객체입니다. 내장 객체는 따로 인스턴스화 과정을 거칠 필요가 없다는 특징이 있습니다.

래퍼 객체 Wrapper Object

래퍼 객체는 내장 객체 중에서도 문자열을 다루는 String, 숫자를 다루는 Number, 논리형을 다루는 Boolean 객체를 래퍼 객체라고 합니다. 그 이름처럼 감싼다라는 의미를 갖는데요. 왜 이런 이름이 붙었냐면, 일반적인 데이터 값인 문자열, 숫자, 논리값을 감싸서 객체처럼 이용할 수 있게 하기 때문입니다.

래퍼 객체는 자바스크립트가 해당 데이터형을 자동으로 객체와 호환시켜주기 때문에 프로그래머는 따로 코드 기술없이 바로바로 객체처럼 이용할 수 있습니다.


String 객체

String 객체는 문자열을 다루기 위한 객체입니다.

문자열 검색

indexOf, lastIndexOf

indexOf(찾을_문자(), [시작_인덱스])
lastIndexOf(찾을_문자(), [시작_인덱스])

indexOflastIndexOf는 문자열에서 특정 문자를 찾는 메소드입니다. indexOf는 문자열의 시작 부분에서 시작하여 왼쪽에서 오른쪽 방향으로 탐색을 진행하고, lastIndexOf는 문자열의 끝 부분부터 시작해 오른쪽에서 왼쪽 방향으로 탐색을 진행합니다. 만약 두 번째 인수로 시작 인덱스를 전달하면 해당 인덱스부터 탐색을 진행합니다.

두 메소드는 찾을 문자를 찾게되면 해당 문자가 위치한 인덱스를 반환합니다. 만약 문자열에 찾을 문자가 여러개 포함되어있다면, 가장 먼저 등장한 문자의 인덱스를 반환합니다.
찾을 문자가 존재하지 않는 경우에는 -1을 반환합니다.

이 외에도 찾을 문자를, 문자열로도 지정이 가능한데, 이 경우 일치하는 단어의 첫 글자 인덱스를 반환하게 됩니다.

let str = '자바스크립트 자바스크립트';

console.log(str);
console.log(str.indexOf('바'));
console.log(str.lastIndexOf('바'));

startsWith, endsWith

startsWith(찾을_문자(), [시작_인덱스])
endsWith(찾을_문자(), [시작_인덱스])

startWithendsWitch은 문자열이 찾을 문자로 시작하는지, 종료되는지에 대한 결과를 반환합니다. 따라서 찾을 문자로 시작하거나 종료되면 true를, 그렇지 않으면 false를 반환하게됩니다.

let str = '자바스크립트 자바스크립트';

console.log(str.startsWith('자'));
console.log(str.endsWith('바'));

includes

includes(찾을_문자())

includes는 문자열에서 찾는 문자가 포함되어있는지 확인합니다. 포함되어있으면 true를 포함되지 않았다면 false를 반환합니다. 이때 엄격한 검사를 실행하므로 띄어쓰기, 대소문자 구별을 합니다.

let str = '자바스크립트 자바스크립트';

console.log(str.includes('트 자'));
console.log(str.includes('트자'));

부분 문자열 취득

charAt

charAt(인덱스)

charAt은 지정한 인덱스 위치의 문자를 취득합니다.

substr

substr(시작_인덱스, [추출_갯수])

substr지정된 시작 인덱스 + 1 위치의 인덱스부터 문자를 하나씩 추출합니다. 이때 두번째 인수로 추출 갯수를 넣으면 해당 갯수만큼 인덱스를 추출합니다.

split

split(문자열, [분할_갯수])

split은 문자열을 분할하는 메소드입니다. 인수로 지정된 문자열을 기준으로 분할해서 결과를 배열의 형태로 반환합니다. 다시말해 문자열로 ','를 전달하면 쉼표를 기준으로 문자열이 분할되어 반환됩니다. 역시 두 번째 인수로 분할 수를 넣으면, 그 수 만큼만 분할합니다.

let str = '자바스크립트 자바스크립트';

console.log(str.split('스'));

let str = '자바스크립트 자바스크립트';

console.log(str.split('스', 2));

substring, slice

substring(시작_인덱스, [종료_인덱스]);
slice(시작_인덱스, [종료_인덱스]);

substringslice는 문자열을 분할하는 메소드입니다. 시작 인덱스부터 시작하여 끝까지 혹은 지정한 종료 인덱스까지 문자열을 잘라서 그 부분만 반환합니다.

이 두 메소드는 비슷해 보이지만 두 가지 큰 차이점이 있습니다. 차이점을 확인해보시고, 필요한 용도에 맞게 활용하시면 됩니다.

우선, 시작 인덱스를 지정할 때 음수를 지정하는 경우입니다.
substring에서 음수는 무조건 0으로 인식됩니다. 반면 slice음수를 마지막 인덱스 부터 세는 것으로 인식합니다. 예를들어 -2라면, 마지막 인덱스로부터 2개 이전의 인덱스 값을 갖게됩니다. 말로하면 복잡하니 아래 예제 코드를 확인해보겠습니다.

let str = '자바스크립트';

console.log(str.substring(-2, 4));
//문자열 인덱스 0부터 3까지 추출

console.log(str.slice(2, -2));
.//문자열 인덱스 2부터 3까지 추출

두 번째 차이점은 시작 인덱스와 종료 인덱스 지정시에 시작 인덱스가 종료 인덱스보다 작은 경우 입니다.
substring은 내부적으로 더 작은 수를 시작 인덱스로 인식하고 동작합니다. 그래서 substring(2, 4)이던 substring(4, 2)던 동일하게 동작합니다. 반면 slice는 이러한 처리 없이 공백 문자열을 반환합니다. 왜냐하면 자를 위치에 아무것도 없기 때문이죠.

let str = '자바스크립트';

console.log(str.substring(2, 0)); //(0, 2)로 교환
console.log(str.slice(2, 1));
console.log(str.substring(2, -4));
//substring에서 음수는 0으로 교환되는데 이 법칙이 다시 적용되서 (0, 2)와 같아짐

정규 표현

정규 표현은 문자열 내에 특정한 패턴이 있는 문자열(이메일이나 웹 페이지 주소 등)을 표현하는 방법입니다. 내장 객체중에 정규 표현을 다루는 객체가 따로 존재하므로 더 자세한 것은 그때 다루기로 하고, 지금은 String 객체의 정규 표현 문자열을 처리하는 메소드들을 알아보겠습니다.

match

match(reg)

match는 정규 표현 reg로 문자열을 검색합니다. reg와 일치하는 문자열이 존재하면, 해당 부분의 문자열을 반환합니다.

replace

replace(reg, str)

replace는 정규 표현으로 검색하고 해당 부분은 문자열 str로 교체해줍니다.

search(reg)

search는 match와 비슷한데, 검색을 수행하는 것까진 일치하나 일치하는 부분의 첫 번째 문자의 위치(인덱스)를 반환합니다.

치환

toLowerCase, toUpperCase

toLowerCase()
toUpperCase()

toLowerCase는 영어 소문자, 대문자를 소문자로, toUpperCase는 영어 소문자, 대문자를 대문자로 치환해줍니다.

코드 변환

charCodeAt

charCodeAt(n)

charCodeAt은 문자열에서 n+1 번 위치의 문자를 Latin-1 코드로 변환해줍니다. Latin-1 코드에 대해서는 링크를 참조해주세요.

fromCharCode

fromCharCode(c1, c2, ...)

fromCharAt는 Latin-1 코드를 인수로 전달하여, 문자로 변환해주는 메소드입니다.

codePointAt

codePointAt(n)

codePointAt은 문자열의 n+1 번 위치의 문자를 utf-16으로 인코딩된 코드 포인트 값으로 변환해줍니다. 코드 포인트는 유니코드를 나타내기 위해 사용하는 값입니다. 유니코드는 한글 등과 같이 영어 외의 문자들을 나타내기 위한 문자 코드의 집합입니다.

fromCodePointAt

fromCodePoint(n1, n2, ...);

이 메소드는 코드 포인트 값으로 부터 문자를 얻는 메소드입니다.

기타 String 객체 메소드, 프로퍼티

concat

문자열.concat(str)

concat은 문자열을 이어붙이는 메소드입니다. 인수로 지정한 str 문자열이 뒤에 붙게됩니다.

let str = '자바';

console.log(str.concat('스크립트'));

repeat

repeat(n)

repeat는 문자열을 인수 n번 만큼 반복한 문자열을 반환합니다.

let str = '자바스크립트';

console.log(str.repeat(2));

trim

trim()

trim은 문자열의 전후에서 공백을 제거합니다.

let str = ' 자바스크립트';

console.log(str);
console.log(str.trim());

length

문자열.length

length프로퍼티는 문자열의 길이를 반환합니다. 한글 단어도 한 글자씩 세어서 반환합니다.

let str = '자바스크립트';

console.log(str);
console.log(str.length);

post-custom-banner

0개의 댓글