본문 바로가기
컴퓨터 사이언스/TIL 정리

[자바스크립트] String 객체

by 메리뉴데이 2022. 7. 20.

String 전역 객체는 문자열의 생성자이다. : String 전역 객체를 직접 사용하여 문자열을 생성할 수 있다는 말이다.

기본형 : String(문자열로_반환하고_싶은_값)
               ex. let a = String(1) => console.log(a)    //  "1"

 

문자열은 텍스트 형태로 표현될 수 있는 데이터를 보관하는데 유용하다. 

 

문자열에서 가장 많이 사용되는 작업들은,

① 문자열의 길이를 확인하는 length 속성

② 문자열을 생성하고 연결하는 +와 += 문자열 연산자

③ 서브문자열(substring)이 있는지 확인하고, 있으면 위치를 확인해주는 indexOf() 메서드

④ 서브문자열을 추출해내는 substring() 메서드

 

 

문자 접근

문자열에서 개개의 문자에 접근할 수 있는 방법

① return 'kitty'.charAt(1);        // returns "i"

② return 'kitty'[4];                    // returns "y"

① charAt() 메서드의 인수 자리에 제로베이스의 위치를 넣음

② 문자열을 배열과 같은 객체로 취급하여, 문자에 해당하는 숫자 인덱스를 사용

     cf. charAt() 메서드의 () 소괄호로 접근하지 않고, [] 브라켓으로 접근한 경우에는

          속성들에 새로운 값을 할당하거나 삭제, 작성, 생성, 수정이 불가하다.

 

 

문자열 비교

자바스크립트에서는 >(greater-than) 연산자와 <(less-than) 연산자만을 사용해 문자열을 비교할 수 있다.

 cf. 비슷한 결과를 얻을 수 있는 방법으로 String 인스턴스에서 상속된 localeCompare() 메서드가 있다.

 

 

문자열 원형과 String 객체의 차이

자바스크립트는 String 객체와 원형(원시타입)의 문자열을 다르게 취급한다 !

cf. Boolean과 숫자의 true도 마찬가지로 다르게 취급

 

(작은 따옴표 또는 큰 따옴표로 생성되는) 문자열 리터럴과 (new 키워드를 사용하지 않고 즉,) 생성자 없이 String을 호출하여 반환된 문자열은 원형 문자열이다.

자바스크립트는 자동적으로 원형 문자열을 String 객체로 변환하기 때문에, String 객체 메서드를 사용하여 원형문자열을 생성할 수 있다.

let s_prim = "hello";                             // 원형 문자열(문자열 리터럴) hello를 변수 s_prim에 담고
let s_obj = new String(s_prim);           // 원형 문자열이 담긴 변수로 문자열 객체를 생성(new)해 변수 s_obj에 담음

console.log(typeof s_prim);                 // "string"
console.log(typeof s_obj);                    // "object"

 

let s1 = '1 + 1';                            // 원형 문자열 만들기
let s2 = new String('1 + 1');         // 문자열 객체 만들기
console.log(eval(s1));                 // 2
console.log(eval(s2));                 // "1 + 1"

 

 

working on...