const strObj = new String();
console.log(strObj); // String {length:0, [[PrimitiveValue]]:""}
const strObj = new String('Lee');
console.log(strObj); // String {0:"L", 1:'e", 2:"e", length:3, [[PrimitiveValue]]:"Lee"}
const strObj = new String('Lee');
console.log(strObj[0]); //L
strObj[0] ='S';
console.log(strObj); // 'Lee'
let strObj= new String(123);
console.log(strObj); // String(0:"1", 1:"2", 2:"3", length:4, ...}
String(1); // -> "1"
String(true); // -> "true"
String 인스턴스
가 아닌 문자열
을 반환한다.'Hello'.length; //-> 5
직접 변경하는 메서드
와 새로운 배열을 생성하여 반환하는 메서드
가 있다.직접 변경하는 메서드
는 존재하지 않는다.읽기 전용 객체
로 제공된다.const strObj = new String('Lee');
console.log(Object.getOwnPropertyDescriptors(strObj));
/*
{
0: {value: 'L', writable: false, enumerable: true, configurable: false}
1: {value: 'e', writable: false, enumerable: true, configurable: false}
2: {value: 'e', writable: false, enumerable: true, configurable: false}
length: {value: 3, writable: false, enumerable: false, configurable: false}
}
*/
다음은 사용 빈도가 높은 String 메서드이다.
대상 문자열
에서 인수로 전달받은 문자열
을 검색하여 첫 번째 인덱스
를 반환한다.-1
을 반환한다.const str="Hello World";
str.indexOf('l'); // -> 2
str.indexOf('or'); // -> 7
str.indexOf('x'); // -> -1
str.indexOf('l', 3); //-> 3
//indexOf 사용했을때
if(str.indexOf('Hello') !== -1){
}
//includes 사용했을때
if(str.includes('Hello')){
}
문자열의 인덱스
를 반환한다.const str= 'Hello world';
str.search(/o/); // -> 4
str.search(/x/); // -> -1
const str= 'Hello world';
str.includes('Hello'); //-> true
str.includes('x'); //-> false
str.includes('l', 3); // -> true
const str= 'Hello world';
str.startsWith('He') //-> true
str.startsWith('x') // -> false
str.startsWith(' ', 5); // -> true
const str= 'Hello world';
str.endsWith('ld'); // -> true
// str의 5자리까지(Hello)가 'lo'로 끝나는지 확인
str.endWith('lo', 5); //-> true
const str = 'Hello';
str.charAt(0); // -> H
str.ChartAt(5); // -> ''
첫 번째 인수
로 전달받은 인덱스에 위치하는 문자부터 두 번째 인수
로 전달받은 인덱스에 위치하는 문자의 바로 이전 문자까지의 부분 문자열을 반환한다.const str = 'Hello World';
str.substring(1,4); //-> ell
str.substring(1); //-> ello world
첫 번째 인수는 두 번째 인수보다 작은 정수여야 정상이지만,
다음과 같이 인수를 전달하여도 정상 동작한다.
const str = 'Hello World';
str.slice(0,5); //-> 'Hello'
str.slice(-5); // -> 'World'
const str = 'Hello World';
str.toUpperCase(); // -> 'HELLO WORLD'
const str = 'Hello World';
str.toLowerCase(); // -> 'hello world'
const str= ' foo ';
str.trim(); // -> 'foo'
const str = 'abc';
str.repeat(); // ->''
str.repeat(2); //-> 'abcabc'
첫 번째 인수
로 전달받은 문자열 또는 정규표현식을 검색하여 두 번째 인수
로 전달한 문자열로 치환한 문자열을 반환const str= 'Hello world';
str.replace('world', 'Lee'); // -> 'Hello Lee'
분리된 각 문자열
로 이루어진 배열
을 반환한다.const str= "How are you doing?";
str.split(' '); // ["How", "are", "you", "doing?"]
str.split(' ', 3); // ["How", "are", "you"]