/ JAVASCRIPT

그렇게 중요해보이지 않는 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"]

이 메서드는 배열을 반환해주기때문에 배열의 베서드와 함께 사용해도 문제없다.