String

beomjin_97·2022년 9월 13일
0

javascript

목록 보기
9/13

1. String 생성자 함수

1.1 인수를 전달하지 않는경우

const strObj = new String()

[[StringData]] 내부에 빈 문자열('')을 할당한 String 래퍼 객체를 생성한다.

1.2 문자열을 인수로 전달한 경우

const strObj = new String('beomjin')

[[StringData]] 내부에 인수로 전달된 문자열을 할당한 String 래퍼 객체를 생성한다.
문자열이 아닌 값을 전달하면 문자열로 강제로 변환후 문자열이 전달된것 처럼 String 래퍼객체를 생성한다.

1.3 new 연산자 없이 호출한 경우

const str = String(100) // `100`

String 인스턴스가 아닌 (전달된 인수가 문자열이 아닌경우 문자열로 강제 변환 한 다음) 문자열 자체를 반환한다.


2. length

'beomjin'.length // 7

String 래퍼 객체는 length 프로퍼티를 갖는다.
인덱스를 프로퍼티로, 해당하는 문자를 값으로 가지는 유사 배열 객체 이기도 하다.


3. String 메서드

메서드를 호출한 래퍼 객체를 직접 변경하는 String 객체의 메서드는 없다.

3.1 String.prototype.indexOf

const str = 'hello world'
str.indexOf('o')    // 4
str.indexOf('l', 3) // 3
str.indexOf('z') // -1

메서드를 호출한 문자열에서 인수로 전달받은 문자열을 검색하여 첫번째 인덱스를 반환한다.
두번째 인수로 검색을 시작할 인덱스를 전달할 수 있다.
대상 문자열이 존재하지 않을 경우 -1을 반환한다.

3.2 String.prototype.search

const str = 'hello world'
str.search(/h/)  // 0
str.search(/x/) // -1

인수로 전달받은 정규표현식과 매치되는 문자열을 검색하여 일치하는 문자열의 인덱스를 반환한다.

3.3 String.prototype.includes

const str = 'hello world'
str.includes('ell')  // true
str.includes('')     // true
str.inclueds()       // false
str.inclueds('e', 5) // false

대상 문자열에 인수로 전달받은 문자열이 포함되어 있는지 확인하여 boolean 값을 반환한다.
두번째 인수로 시작 인덱스를 전달할 수 있다.

3.4 String.prototype.startsWith

const str = 'hello world'
str.startsWith('hel') // true
str.startsWith('xx')  // false
str.startsWith('e', 1) // true

대상 문자열이 인수로 전달받은 문자열로 시작하는지 확인하여 boolean 값을 반환한다.
두번째 인수로 검색을 시작할 인덱스를 전달할 수 있다.

3.5 String.prototype.endsWith

const str = 'hello world'
str.endsWith('ld')  // true
str.endsWith('lo', 5) // true

대상 문자열이 인수로 전달받은 문자열로 끝나는지 확인하여 boolean 값을 반환한다.
두번째 인수로 검색할 문자열의 길이를 전달할 수 있다.

3.6 String.prototype.charAt

const str = 'hello'
for (let i = 0; i < str.length; i++ {
  console.log(str.chartAt(i)) // h e l l o

대상 문자열에서 인수로 전달받은 인덱스에 위치한 문자를 검색하여 반환한다.
인수가 문자열의 인덱스를 벗어난 경우 빈 문자열을 반환한다.

3.7 String.prototype.substring

const str = 'hello world'
str.substring(1,4) // ell
srt.substring(6) // world

대상 문자열에서 첫 번째 인수로 전달받은 인덱스에 위치하는 문자부터 두 번째 인수로 전달받은 인덱스에 위치하는 문자의 바로 이전 문자까지의 부분 문자열을 반환한다.
두번째 인수를 전달하지 않으면 첫번째 인수의 인덱스 부터 문자열 끝까지 반환한다.

3.8 String.prototype.slice

const str = 'hello world'

str.substring(-5)  // 'hello world'
str.slice(-5)  // 'world'

substring과 동일하게 작동하지만 slice는 인수로 음수를 전달할 수 있다. 음수를 전달할 경우 대상 문자열의 가장 뒤에서부터 시작하여 문자열을 잘라내어 반환한다.

3.9 String.prototype.toUpperCase

const str = 'hello world'
str.toUpperCase(); // 'HELLO WORLD'

대상 문자열을 모두 대문자로 변경하여 문자열을 반환한다.

3.10 String.prototype.toLowerCase

const str = 'HeLLo World'
str.toLowerCase()  // 'hello world'

대상 문자열을 모두 소문자로 변경하여 문자열을 반환한다.

3.11 String.prototype.trim

const str = '     hello '
str.trim()  // 'hello'

대상 문자열 앞뒤에 있는 공백을 제거한 문자열을 반환한다.

3.12 String.prototype.repeat

const str = 'xyz'
str.repeat(2)   //'xyzxyz'
str.repeat(0)   //''

대상 문자열을 인수로 전달받은 정수만큼 반복해 연결한 새로운 문자열을 반환한다.

3.13 String.prototype.replace

let str = 'hello world'
str.replace('world', 'Kim')   // 'hello Kim'

str = 'helloWorld'
str.replace(/.[A-Z]/, (match) => {
	return `${match[0]}_${match[1].toLowerCase()}` 	
}  // 'hello_world'

대상 문자열에서 첫 번째 인수로 전달받은 문자열 또는 정규표현식을 검색하여 두번째 인수로 전달받은 문자열로 치환한 문자열을 반환한다. 첫번째로 검색된 문자열만 치환한다.
두번째 인수로 치환 함수를 전달할 수도 있다.

3.14 String.prototype.split()

const str = "What is your name?";

str.split("");  //['W', 'h', 'a', 't', ' ','i', 's', ' ', 'y', 'o', 'u', 'r', ' ', 'n', 'a','m', 'e', '?']
str.split(" ");  //  [ 'What', 'is', 'your', 'name?' ] 
str.split();  // [ 'What is your name?' ]
str.split(" ", 3);  // [ 'What', 'is', 'your' ]

대상 문자열에서 첫번째 인수로 전달한 문자열 또는 정규표현식을 검색하여 문자열을 구분한 후 분리된 각 문자열로 이루어진 배열을 반환한다.
두번째 인수로 배열의 길이를 지정할 수 있다.

profile
Rather be dead than cool.

0개의 댓글