# 자바스크립트 학습
# String 오브젝트
- "ABC" 처럼 문자 처리를 위한 빌트인 오브젝트이다.
- String 오브젝트에는 문자 처리를 위한 함수와 프로퍼티가 포함되어 있다.
- 함수를 호출하여 문자 처리를 하게 된다.
## 문자열 연결 방법
- 한 줄에 작성하여 연결한다. (기준은 세미콜론, 세미콜론이 나올떄까지 모든 문자열을 연결)
var book = "12" + "AB" + "가나";
- 줄을 분리하여 연결한다. (+로 문자열을 연결한다.)
var concat = 123 + "abc" +
"가나다";
log(concat);
=>
123abc가나다
var concat = abc" \ 가나다라";
log(concat)
=>
abc가나다라
## 프로퍼티 리스트
이름 |
개요 |
new String() |
인스턴스 생성 |
String 함수 |
String() |
문자열로 변환하여 반환 |
fromCharCode() |
유니코드를 문자열로 변환하여 반환 |
String 프로퍼티 |
length |
문자열의 문자 수 반환 |
String.prototype |
constructor |
생성자 |
valueOf() |
프리미티브 값 반환 |
toString() |
문자열로 반환 |
charAt() |
인덱스 번째 문자 반환 |
indexOf() |
일치하는 문자열 중 가장 작은 인덱스 반환 |
lastindexOf() |
일치하는 문자열 중 가장 큰 인덱스 반환 |
concat() |
문자열 연결 |
toLowerCase() |
영문 소문자로 변환 |
toUpperCase() |
영문 대문자로 변환 |
trim() |
문자열 앞뒤의 화이트 스페이스 삭제 |
substring() |
시작에서 끝 직전까지 값 반환 |
substr() |
시작 위치부터 지정한 문자 수 반환 |
slice() |
시작에서 끝 직전까지 값 반환 |
match() |
매치 결과 반환 |
replace() |
매치 결과를 지정한 값으로 대체 |
search() |
검색된 첫 번째 인덱스 반환 |
split() |
구분자로 분리하여 반환 |
charCodeAt() |
인덱스 번째 문자를 유니코드로 반환 |
localeCompare() |
값의 위치를 1, 0, -1로 반환 |
## 문자열로 변환
구분 |
데이터(값) |
파라미터 |
변환 대상 |
반환 |
변환한 값 |
- 파라미터 값을 String 타입으로 변환하여 반환한다.
- 값을 작성하지 않으면 빈 문자열을 반환한다.
var value = String(123);
log(value);
log(typeof value);
log(typeof ("" + 123));
=>
123
string
string
- 가독성을 위해 ("" + 123) 보다는 String(123) 형태로 작성한다.
## new String()
구분 |
데이터(값) |
파라미터 |
값opt |
반환 |
생성한 String 인스턴스 |
- new 연산자로 String 생성자 함수를 호출하면 String 인스턴스를 생성하여 반환한다.
- 아래와 같이 new 연산자로 String 생성자 함수를 호출하면서 파라미터 값으로 Number 타입으로 123 작성, 그러면 인스턴스를 생성하여 obj에 할당하게 되고, 123을 인스턴스의 프리미티브 값으로 설정하게 된다.
var obj = new String(123);
log(typeof obj);
=>
object
## valueOf()
구분 |
데이터(값) |
data |
String 인스턴스, 문자 |
파라미터 |
사용하지 않음 |
반환 |
프리미티브 값 |
- valueOf 함수는 String 인스턴스의 프리미티브 값을 반환한다.
var obj = new String(123);
log(obj.valueOf());
=>
123
# length 프로퍼티
문자 수를 반환한다.
var value = "ABC";
log(value.length);
=>
3
var value = "ABC";
for (var l = 0; k < value.length; k++ ) {
log(value[k]);
};
=>
A
B
C
1. length가 출력되는 원리
var obj = new String("ABC");
new 연산자로 String 생성자 함수를 호출하면서 파라미터에 "ABC"를 작성해서 인스턴스 생성
obj에 length가 존재.
value가 obj가 된 것.(즉, value가 인스턴스가 된 것)
2. 출력원리
var value = "ABC";
console.log(value.length); // 3출력
value.length 진행 시, value에 대한 타입을 구한 후
내부적으로 해당 타입에 맞는 new String("ABC"); 가 진행된다.
이로인해 자바스크립트 내부에서 인스턴스를 생성.(temp라고 하면)
생성된 인스턴스를 갖고 temp.length 진행하여 3출력.
정리)
1. value.length 진행 시 value에 맞는 타입 확인
2. 타입에 맞는 생성자 함수 호출하여 인스턴스 생성
3. 이로인해 value.length 사용 가능
# 화이트 스페이스 삭제
## trim()
구분 |
데이터(값) |
data |
삭제 대상 |
파라미터 |
사용하지 않음 |
반환 |
삭제한 결과 |
var value = " abcd ";
log(value.length);
log(value.trim().length);
=>
8 // abcd 앞뒤로 공백이 2개씩 존재.
4 // trim() 함수로 공백 제거
- 메소드 체인(Method chain) : value.trim().length 처럼 점과 점으로 연결된 형태를 의미