728x90
표준 빌트인 객체인 String 객체는 생성자 함수 객체다. new 연산자와 함께 호출하여 String 인스턴스를 생성할 수 있다. 문자열은 원시 값이므로 변경할 수 없다. 그리고 String 메서드는 원본 String 래퍼 객체를 직접 변경하는 메서드는 존재하지 않는다. 즉, String 객체의 메서드는 언제나 새로운 문자열을 반환한다.
String.prototype.substring
substring 메서드는 대상 문자열에서 첫 번째 인수로 전달받은 인덱스에 위치하는 문자부터 두 번째 인수로 전달받은 인덱스에 위치하는 문자의 바로 이전 문자까지의 부분 문자열을 반환한다.
const str = 'Hello kpl';
str.substring(1, 4); // ell
// 두번째 인수는 생략 가능하고, 1부터 마지막 문자열까지 반환한다.
str.substring(1); // ello kpl
// 두 번째 인수가 첫 번째 인수보다 클 경우 두 인수는 교환된다.
str.substring(4, 1); // ell
// 인수 < 0 또는, NaN인 경우 0으로 취급된다.
str.substring(-2); // Hello kpl
// 인수 > 문자열의 길이일 경우 인수는 문자열의 길이(str.length)로 취급된다.
str.substring(1,1000); // ello kpl
str.substring(1000); // ''
String.prototype.slice
slice 메서드는 substring 메서드와 동일하게 동작한다. 단, slice 메서드는 음수인 인수를 전달할 수 있다. 음수인 인수를 전달하면 대상 문자열의 가장 뒤에서부터 시작하여 문자열을 잘라내어 반환한다.
const str = 'Hello kpl';
// 동일하게 0번째부터 5번째 이전까지 문자열 반환
str.substring(0, 5); // Hello
str.slice(0, 5); // Hello
// substring의 경우 인수 < 0 또는 NaN이면 0으로 취급된다.
str.substring(-5); // 'Hello kpl'
// 뒤에서 5자리를 잘라내서 반환한다.
str.slice(-5); // o kpl
String.prototype.repeat
ES6에서 도입된 repeat은 대상 문자열을 인수로 전달받은 정수만큼 반복해 연결한 새로운 문자열을 반환한다. 전달 받은 정수가 0 이면 빈 문자열을 반환하고 음수면 RangeError를 발생시킨다. 인수를 생략하면 기본값 0이 설정된다.
String.prototype.split
대상 문자열에서 첫 번째 인수로 전달한 문자열 또는 정규 표현식을 검색하여 문자열을 구분한 후 분리된 각 문자열로 이루어진 배열을 반환한다.
const str = 'How are you doing?';
// 공백으로 구분하여 배열로 반환
str.split(' '); // ["How", "are", "you", "doing?"]
// 빈 문자열을 전달할 경우 각 문자를 모두 분리
str.split(''); // ["H", "o", "w" ... "?"]
// 인수를 생략하면 대상 문자열 전체를 단일 요소로 하는 배열을 반환
str.split(); // ["How are you doing?"]
// split 메서드는 배열을 반환하기 때문에 문자열을 역순으로도 뒤집을 수 있다.
str.split('').reverse().join(''); // ?gniod uoy era woH
728x90
'Javascript' 카테고리의 다른 글
브라우저의 렌더링 (0) | 2020.11.25 |
---|---|
이터러블 (0) | 2020.11.24 |
Date (0) | 2020.11.24 |
Number & Math (0) | 2020.11.24 |
클로저 (0) | 2020.11.18 |
댓글