String 객체는 문자열을 다룰 때 유용한 프로퍼티와 메소드를 제공하는 객체이다.
변수 또는 객체 프로퍼티가 문자열을 값으로 가지고 있다면 String 객체를 생성하지 없이 프로퍼티와 메소드를 사용할 수 있다.
인수로 전달한 인덱스의 위치에 해당되는 문자열을 반환하는 메소드
만약 지정한 인덱스가 문자열의 범위를 벗어날 경우 빈 문자열을 반환한다.
const str = "Hello";
console.log(str.charAt(0)) // H
console.log(str.charAt(1)) // e
console.log(str.charAt(2)) // l
console.log(str.charAt(3)) // l
console.log(str.charAt(4)) // o
console.log(str.charAt(5)) // ''
첫번째 인수로 전달한 인덱스부터 두번째 인수로 전달된 인덱스 바로 이전 문자까지 모두 반환하는 메소드. 두번째 인수가 생략된 경우 해당 문자열을 끝까지 반환하고, 인수가 0보다 작거나 NaN일 경우 0으로 취급한다. 인수가 문자열의 길이보다 클 경우 문자열의 길이로 취급한다.
const str = "Hello World";
console.log(str.substring(1, 4)); // ell
console.log(str.substring(6)); // World
console.log(6, 20); // World
console.log(10); // 'd'
console.log(10, 11); // 'd'
console.log(11); // ''
var address = "abcde@naver.com"
var id = address.substring(0, 5) // abcde
var domain = address.substring(6); // naver.com
var domain2 = address.substring(address.length, 6); //위와 동일, 끝부터 6까지 출력 > naver.com
첫번째 인수로 전달한 문자열을 검색해, 두번째 인수로 전달한 문자열로 대체하는 메소드.
원본 문자열은 변경되지 않고, 결과가 반영된 새로운 문자열을 반환한다.
만약, 검색 문자열이 2개 이상일 경우 첫번째로 검색된 문자열만 대체한다.
const str = "Hello world";
console.log(str.replace("Hello", "Hi")); // Hi world
console.log(str.replace("o", "O")); // hellO world
인수로 전달한 문자열을 대상 문자열에서 검색해, 인덱스를 반환하는 메소드.
만약 검색 문자열이 2개 이상 존재할 경우, 첫번째로 검색된 문자열의 인덱스를 반환한다.
문자열이 없을 경우에는 -1을 반환한다.
indexOf와 lastIndexOf의 차이점은 시작점에 있다.
indexOf는 왼쪽에서부터 문자열을 검색하고, lastIndexOf는 오른쪽에서부터 문자열을 검색한다.
const str = "red, blue, red, pink"
console.log(str.indexOf("red")); // 0
console.log(str.lastIndexOf("red")) // 11
// 5번째 인덱스 이후에 등장하는, red 문자열의 인덱스
console.log(str.indexOf("red", 5)) // 11
console.log(str.indexOf("yellow")) // -1
첫번째 인수로 전달한 문자열을 기준으로 대상 문자열을 구분한 뒤, 분리된 문자열로 이루어진 배열을 반환하는 메소드. 원본 문자열은 변경되지 않으며, 인수가 없는 경우 대상 문자열을 요소로 하는 배열을 반환한다.
두번째 인수로 전달한 숫자는 배열로 반환될 요소의 최대값을 의미한다.
const str = "서울-대전-대구";
console.log(str.split("-")); // ["서울", "대전", "대구"]
console.log(str.split("")); // ["서", "울" , "-" , "대", "전", "-", "대", "구"]
console.log(str.split()); // ["서울-대전-대구"]
console.log(str.split("-", 2)) // ["서울", "대전"]
substing과 동일한 역할을 하는 메소드. 하지만, substring과 달리 음수를 인수로 전달할 수 있다.
const str = "Hello Wolrd";
str.substring(-5); // "Hello World"
str.slice(-5); // "World"
str.slice(0, -5) // "Hello "
toLowerCase는 대상 문자열의 모든 문자를 소문자로 변경하고, toUpperCase는 대상 문자열의 모든 문자열을 대문자로 변경하는 메소드이다.
const str = "Hello World";
console.log(str.toLowerCase()) // hello world
console.log(str.toUpperCase()) // HELLO WORLD
대상 문자열의 양 끝쪽에 있는 공백문자를 제거하여 반환하는 메소드
const str = " Hello ";
console.log(str.trim()); // "Hello"
console.log(str.trimStart()); // "Hello "
console.log(str.trimEnd()); // " Hello"