String 객체에 대해 알아보자.
String 객체
String 객체는 원시 타입인 문자열을 다룰 때 유용한 프로퍼티와 메서드를 제공하는 래퍼 객체입니다.
String 객체는 String 생성자 함수를 통해 생성할 수 있습니다.
일반적으로 리터럴로 표현하고 래퍼 객체로 활용합니다.
1
2
3
4
5
6
7
8
let str = "Psmin";
let strObj = new String("Psmin");
console.log(str == strObj); // true
console.log(str === strObj); // false
console.log(typeof str); // string
console.log(typeof strObj); // object
주요 프로퍼티
String.length
문자열 내의 문자 갯수를 반환합니다.
String 객체는 length 프로퍼티를 갖으므로 유사 배열 객체입니다.
주요 메서드
변경 불가능(immutable)한 원시 값이기 때문에 String 객체의 모든 메서드는 언제나 새로운 문자열을 반환합니다.
문자열 접근
String.prototype.charAt(num)
인수로 전달한 index를 사용하여 index에 해당하는 위치의 문자를 반환합니다.
str.charAt(index)
index
: 검색할 인덱스 값
String.prototype.substring(indexStart, indexEnd)
string 객체의 시작 인덱스로 부터 종료 인덱스 이전까지 문자열의 부분 문자열을 반환합니다.
indexStart
: 반환할 부분 문자열의 시작 인덱스indexEnd
: 반환할 부분 문자열의 마지막 인덱스 (생략시 문자열의 끝까지 반환)
String.prototype.slice(indexStart, indexEnd)
문자열의 일부를 추출하면서 새로운 문자열을 반환합니다.
substring과 동일하지만 음수를 인수로 전달할 수 있습니다.
indexStart
: 추출 시작점 인덱스로 음수 사용 가능합니다.indexEnd
: 추출 종료점 인덱스로 그 직전까지 추출됩니다.
문자열 검색
String.prototype.indexOf(searchValue, fromIndex)
인수로 전달한 문자 또는 문자열을 검색하여 처음 발견된 곳의 index를 반환합니다.
searchValue
: 찾으려는 문자열fromIndex
: 찾기 시작하는 위치를 나타내는 인덱스 값
String.prototype.includes(searchString, position)
하나의 문자열이 다른 문자열에 포함되어 있는지를 판별하고, 결과를 true 또는 false 로 반환합니다.
(검색 시 대소문자를 구분합니다.)searchString
: 이 문자열에서 찾을 다른 문자열 (정규표현식 사용 불가)position
: 찾기 시작하는 위치를 나타내는 인덱스 값 (기본값 0)
문자열 분해
String.prototype.split(separator, limit)
String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나누어 담은 배열을 반환합니다.
separator
: 원본 문자열을 끊어야 할 부분을 나타내는 문자열Limit
: 끊어진 문자열의 최대 개수
문자열 바꾸기
String.prototype.replace(searchValue, replaceValue))
첫번째 인수로 전달한 문자열 또는 정규표현식을 대상 문자열에서 검색하여 두번째 인수로 전달한 문자열로 대체합니다.
searchValue
: 문자열 or 정규식 표현식 (RegExp)replaceValue
: 문자열 or 새 하위 문자열을 생성하기 위해 호출되는 콜백 함수
그 외
String.prototype.toUpperCase()
문자열을 대문자로 변환해 반환합니다.
String.prototype.toLowerCase()
문자열을 소문자로 변환해 반환합니다.
String.prototype.repeat(count)
인수로 전달한 숫자만큼 반복해 연결한 새로운 문자열을 반환합니다.
count
: 반복할 횟수
문자열 비교
동등 연산자 (==, ===)
두개의 문자열이 같은지 다른지 확인할 때, 동등 연산자(==, ===)를 사용할 수 있습니다.
1 2 3 4 5 6 7 8 9
const str1 = "hello"; const str2 = "hello"; const str3 = "world"; console.log(str2 === str3); // false console.log(str1 === str2); // true console.log(str2 == str3); // false console.log(str1 == str2); // true
비교 연산자 (>, <)
문자열의 크기 비교는 다른 언어와 동일하게 ASCII 값을 비교하여 크기를 결정합니다.
문자열의 길이가 짧은 경우 해당 글자부터 0으로 비교합니다.
1 2 3 4 5 6
const str1 = "abc"; const str2 = "abcd"; const str3 = "ad"; console.log(str1 < str2); // true console.log(str1 < str3); // true