9-10. String 오브젝트 / Unicode 관련 함수
charCodeAt()
구분 | 데이터(값) |
---|---|
data | 반환 대상 |
파라미터 | 반환 기준 인덱스(index) |
반환 | 인덱스 번째 문자 |
- 인덱스번째의 문자를 유니코드의 코드 포인트 값으로 반환
인덱스가 문자열 길이보다 크면 NaN 반환
var value = "1Aa가"; for (var k = 0; k < value.length; k++) { console.log(value.charCodeAt(k)); } console.log(value.charCodeAt(12)); // 49 // 65 // 97 // 44032 // NaN
- charCodeAt(12)에서 12번째가 없으며 NaN 반환
fromCharCode()
구분 | 데이터(값) |
---|---|
data | String 오브젝트 |
파라미터 | 유니코드, 다수 작성 가능 |
반환 | 변환한 문자 |
파라미터의 유니코드를 문자열로 변환하고 연결하여 반환
- 작성하지 않으면 빈 문자열 반환
작성 방법
- data 위치에 String 오브젝트 작성
변환 대상 값을 작성하지 않음 String.fromCharCode() 형태
console.log(String.fromCharCode(49, 65, 97, 44032)); // 1Aa가
여태까지 값을 메소드(함수) 앞에다 붙였었습니다.
값.fromCharCode() 이런식으로..
그럼 값을 평가해 값이 String 데이터면 빌트인 String 오브젝트에서 인스턴스를 생성해 그 인스턴스에서 fromCharCode() 함수를 호출해 처리를 했었습니다.그런데 위 식은 그런 형태가 아닙니다.
함수 앞에 String 오브젝트 이름을 작성했고 값을 파라미터에다 작성했습니다.
이 형태는 어떤 형태일까요?prototype이란게 있었죠?
인스턴스로 값을 복사할 때 prototype 오브젝트에 속한 프로퍼티들은 복사했지만, prototype과 같은 수준에 있는 프로퍼티들은 복사하지 않았습니다.
그 같은 수준에 있는 프로퍼티들은 원본에서 확인하라고 했었습니다.바로 그 원본에 속한 것이 fromCharCode 함수입니다.
- data 위치에 String 오브젝트 작성
따라서 원본의 fromCharCode 함수를 봐야되니깐 원래 있었던 빌트인 String 오브젝트를 앞에 명시한 것입니다.
그래야 원본에 있는 것이 불러와지겠죠.
근데 그러면 fromCharCode 함수는 왜 이렇게 만들었냐는 것이죠.
왜 파라미터를 다른 함수와 똑같이 앞에 작성하게 만들지 않았냐는 것이죠.
49, 65, 97, 44032를 앞에 작성하려면 배열을 사용해야됩니다.
[49, 65, 97, 44032].fromCharCode();
그럼 위 코드는 빌트인 String 오브젝트에 속한 fromCharCode 함수를 부르는 것이 아니라 빌트인 Array 오브젝트에 있는 fromCharCode 함수를 부르게될 것입니다.
자바스크립트는 함수 앞에 작성된 데이터 타입에 따라 오브젝트를 불러오기 때문입니다.
그래서 위와 같은 형태를 취한 겁니다.
파라미터에다가 다수를 작성할 수 있도록 원본에 함수를 작성한 것입니다.
일관성이 좀 없는 것처럼 보이지만 나름대로 어려움이 있었던 겁니다.
49, 65, 97, 44032를 함수 앞에 작성할 수 없는 어려움입니다.
그래서 원 오브젝트로 올려버린겁니다.
이건 어쩔 수 없죠.
자바스크립트 구조를 따르다보니까 어쩔 수 없는 겁니다.
localeCompare()
구분 | 데이터(값) |
---|---|
data | 비교 대상 |
파라미터 | 비교할 값 |
반환 | 1(앞), 0(같음), -1(뒤) |
- 값을 비교하여 위치를 나타내는 값으로 반환
- 위치 값: 1(앞), 0(같음), -1(뒤)
Unicode 사전 순으로 비교
var value = "나"; console.log(value.localeCompare("가")); // 1 console.log(value.localeCompare("나")); // 0 console.log(value.localeCompare("다")); // -1
- “가”가 “나”보다 앞에 있으므로 1 반환
- 비교 기준과 비교 대상이 모두 “나”이므로 0
- “다”가 “나”보다 뒤에 있으므로 -1 반환