[Cookbook] JS 문자열 다루기
당분간 전에 구입한 책 2권(C#4.0, Javascript Cookbook)에 대한 내용(개인 테스트 및 내용 정리)으로 연재 포스트를 한번 진행할까 한다.
아마도 이번이 JS 와 C#에 대한 기초 정리는 마무리 될 듯 싶으며, 앞으로는 개인 프로젝트 및 언어에 대한 심화 과정 위주로 포스트를 진행해야 겠다는 계획을 갖고 있다.
그 첫 번째 시간으로 책(cookbook)의 Chapter 1. 과정인 "JS 문자열 다루기" 에 관해 정리해 보겠다.
Chapter 1. JS 문자열 다루기
JS 문자열은 원시 데이터 자료형(Number(int, float), Boolean(true, false), null(empty literal), undefined(not defined)) 중 가장 사용 빈도가 높은, 데이터 자료형이자 객체이다.
1. 표현
작은 따옴표('')와 큰따옴표("") 사용에 대한 규칙은 따로 존재하지 않지만, 아래 코드에서 처럼 HTML 작성 시 태그의 Attribute Wrapping은 큰 따옴표가 기본이므로 일일이 이스케이프(\\)를 사용하지 않기 위해 작은 따옴표를 기본으로 하는 것이 좋다.
2. String 객체:
2.1. "String 객체"는 String 생성자 함수와 new 연산자를 통해 생성되며, 객체 맴버에 접근할 수 있다.
2.2. new 연산자를 사용하지 않고 String 함수 호출 시 객체는 생성되지 않으며, 문자열 리터럴을 생성한다.
2.3. "문자열 리터널"에서 객체(String) 맴버 접근 시 JS 엔진은 즉시 String 객체를 만들어 해당 문자열 리터널을 Wrapping 시킨 후 메서드를 호출한다. 또한, 메서드 종료 시 자동 생성된 String 객체를 소멸 시킨다.
2.4 String 객체 사용 시기는 메서드 접근 유/무에 따라 달라진다. 즉, 메서드 접근 시에는 생성된 객체에 직접 접근하는 것이 보다 효율적이며, 그 반대의 경우 리터럴을 사용하는것이 바람직하다.(객체 메서드 접근이 없는 문자열(실제 코딩 시 이같은 경우는 사실상 제로에 가깝다.))
"더하기 연산(+)" 사용 시 JS 엔진에서 자동 변환(문자열이 아닌 타입)되는 동작을 무시하도록 작성하는 것이 가장 효과적이다. 즉, 자동 변환없는 문자열 타입끼리만 더하기 연산자를 통해 문자열을 연결해준다.