그렇게 중요해보이지 않는 String(2)
.substring()
이 메서드는 2개의 인수를 전달받는데 첫번째 인수로 전달받은 인덱스에 위치하는 문자부터 두번째 인덱스에 위치하는 문자의 바로 전까지의 부분 문자열을 반환한다.
두번째 인수는 생략할 수 있으며 생략하게 될경우 첫번째 인수부터 마지막 문자까지 반환할 수 있다.
이 메서드는 두번째 메서드가 첫번째보다 커야 정상이지만 만약 첫번째 인수가 더 크다면 두 인수는 교환된다.
인수가 0 또는 NaN이라면 0으로 취급된다. 또한 인수가 문자열의 길이보다 크다면 문자열의 길이로 취급된다.
const str = 'Hello World';
str.substring(1, 4); // -> ell
// 인수를 하나만 받았을 때
str.substring(1); // -> ello World
// 두번째 인수가 더 클 때
str.substring(4, 1); // -> ell
// 인수가 0보다 작을 때
str.substring(-4); // -> Hello World
// 문자열의 길이보다 클 때
str.substring(1, 100); // -> ello World
.slice()
이 메서드는 substring과 동일하게 동작하는데
한가지 다른점은 음수인 인수를 전달할수 있다는 것이다. 만약 음수를 인수로 전달하게 된다면 가장 뒤에서부터 인수만큼의 문자열을 잘라내어 반환한다.
str.slice(-5); // -> World
.toUpperCase() .toLowerCase()
Upper은 대상을 모두 대문자로
Lower은 대상을 모두 소문자로 변경해준다.
.trim()
대상의 문자열의 공백을 모두 제거하여 반환해준다.
또한 .trimStart() 와 .trimEnd() 라는 메서드도 존재하는데 왠지 알것같은 그런느낌 그대로이다.
const str = ' what ';
str.trim(); // -> 'what'
str.trimStart(); // -> 'what '
str.trimEnd(); // -> ' what'
.repeat()
ES6에서 도입된 메서드로 인수로 전달받은 정수만큼 대상 문자열을 반복해 새로운 문자열로 반환한다.
만약 인수로 0을 받는다면 빈 문자열을 반환한다. 또한 인수를 생략하면 인수는 0으로 설정된다.
인수가 소수점이라면 내림으로 적용된다.
const str = 'abc';
str.repeat(); // -> ''
str.repeat(0); // -> ''
str.repeat(1); // -> 'abc'
str.repeat(2); // -> 'abcabc'
str.repeat(2.5); // -> 'abcabc'
.replace()
첫번째 인수로 전달받은 문자열 또는 정규표현식을 검색하여 두번째 인수로 전달한 문자열로 치환한 문자열을 반환한다.
const str = 'Hello World';
str.replace('World', 'jong'); // -> 'Hello jong'
.split()
인수로 전달받은 문자열 또는 정규표현식을 검색하여 문자열을 구분(나눈) 후 분리된 문자열로 이루어진 배열을 반환해준다.
인수를 두개를 가질 수 있다 만약 2개를 갖는다면 두번째 인수는 배열의 길이를 지정해준다.
const str = 'My name is jongpill';
str.split(' '); // -> ["My", "name", "is", "jongpill"]
str.split(''); // -> ["M" ~~~..~.. "l"]
str.split(); // -> ["My name is jongpill"]
str.split(' ', 3); // -> ["My", "name", "is"]
이 메서드는 배열을 반환해주기때문에 배열의 베서드와 함께 사용해도 문제없다.