티스토리 뷰
32.1 String 생성자 함수
String 래퍼 객체 생성
const strObj = new String();
// String {length: 0, [[PrimitiveValue]]: ""}
const strObj2 = new String('Lee');
// String {0: "Lee", 1: "e", 2: "e", length: 3, [[PrimitiveValue]]: "Lee"}
ES5의 [[PrimitiveValue]]은 [[StringData]]와 동일
유사 배열 객체, 이터러블
인덱스로 문자에 접근할 수 있으나 원시값이기 때문에 값을 변경할 수 없음
문자열로 변환하기 위해 new 연산자를 붙이지 않고 호출하기도 함(9.3 명시적 타입 변환)
32.3 String 메서드
문자열은 원시값(변경 불가능), String 래퍼 객체도 읽기 전용 객체.
String 객체의 메서드는 항상 새로운 문자열 반환
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 },
}
*/
// 값, 수정 불가능, 열거 가능, 프로퍼티 재정의 불가능
2. String.prototype.search(regExp)
전달받은 정규 표현식과 일치하는 인덱스를 반환
없다면 -1 반환
4. String.prototype.startsWith(string[, index])
전달받은 문자열로 시작하는지를 boolean으로 리턴
두 번째 인자로 정수를 전달하여 검색을 시작할 인덱스를 지정할 수 있음
5. String.prototype.endsWith(string[, length])
전달받은 문자열로 끝나는지 boolean으로 리턴
두 번째 인자로 정수를 전달하여 검색할 문자열의 길이를 지정할 수 있음
6. String.prototype.charAt(index)
전달받은 인덱스에 위치한 문자를 반환
범위를 벗어난 인덱스를 전달한다면 빈 문자열 반환
String.prototype.charCodeAt(index)
전달받은 인덱스에 위치한 문자의 UTF-16 코드를 표현하는 정수(0~65535) 반환
범위를 벗어난 인덱스를 전달한다면 NaN 반환
String.prototype.charPointAt(index)
전달받은 인덱스에 위치한 문자의 유니코드 코드 포인트 값 음수가 아닌 정수 반환
범위를 벗어난 인덱스를 전달한다면 undefined 반환
7. String.prototype.substring(startIndex[, endIndex])
첫 번째 인수부터 두 번째 인수-1 인덱스에 해당하는 문자열 반환
두 번째 인수를 생략한 경우 첫 번째 인수부터 마지막 인덱스까지의 문자열 반환
endIndex가 startIndex보다 작다면 두 인수가 교환됨
index
- 음수거나 NaN인 경우 0으로 취급됨
- 문자열의 길이보다 크다면 문자열 길이로 취급됨
11. String.prototype.trim()
문자열 앞 뒤 공백을 제거한 문자열 반환
String.prototype.trimStart()
문자열 앞 공백을 제거한 문자열 반환
String.prototype.trimEnd()
문자열 뒤 공백을 제거한 문자열 반환
12. String.prototype.repeat(n)
인수 만큼 반복한 문자열 반환
0: 빈 문자열 반환(기본값)
소수: 내림한 정수
음수: RangeError 발생
13. String.prototype.replace(string/regExp, string/function)
교체 패턴: 검색된 문자열을 $&로 접근하여 값을 변경할 수 있음
14. String.prototype.split(string/regExp, length)
두 번째 인자로 전달한 정수로 배열의 길이를 지정할 수 있음
'책' 카테고리의 다른 글
[딥다이브] 34. 이터러블 (0) | 2024.08.20 |
---|---|
[딥다이브] 33. 7번째 데이터 타입 Symbol (0) | 2024.08.19 |
[딥다이브] 31. RegExp (0) | 2024.08.13 |
[딥다이브] 30. Date (4) | 2024.08.11 |
[딥다이브] 29. Math (0) | 2024.08.06 |