문자열 비교하기
- 문자열은 알파벳 순서를 기준이며 소문자가 더 크다. 그 이유는 문자를 숫자를 바꾸는 아스크코드의 크기 때문이다.
'a' > 'Z'; // true
예외로 문자열에 발음 구별 기호가 있으면 알파벳으로 인식하지 않는다.
'Österreich' > 'Zealand'; // true (Österreich는 오스트리아를 독일어로 표기한 것임 - 옮긴이)
모든 문자열은 UTF-16을 사용해 인코딩되는데, UTF-16에선 모든 글자가 숫자 형식의 코드와 매칭된다. 코드로 글자를 얻거나 글자에서 연관 코드를 알아낼 수 있는 메서드는 다음과 같다.
1. str.codePointAt(index)
index에 위치한 글자의 코드를 반환한다.
"z".codePointAt(0); // 122
"Z".codePointAt(0); // 90
2. String.fromCodePoint(code)
숫자 형식의 code에 대응하는 글자를 반환한다.
String.fromCodePoint(90); // Z
\u 뒤에 특정 글자에 대응하는 16진수 코드를 붙이는 방식으로도 원하는 글자를 만들 수 있다.
// 90을 16진수로 변환하면 5a입니다.
'\u005a'; // Z
※ 문자열을 제대로 비교하기
str.localeCompare(str2)를 호출하면 ECMA-402에서 정의한 규칙에 따라 str이 str2보다 작은지, 같은지, 큰지를 나타내주는 정수가 반환하는데 작다면 음수, 크다면 양수, 같다면 0를 반환한다.
'a'.localeCompare('B'); // 1
특이한 점은 같은 알파벳에서 소문자가 크다고 생각하고 'a'.localeCompare('A'); 넣으면 1이 나온다고 생각하지만 -1이 반환된다 그것은 여기를 참고하시면 됩니다~~
문자열 심화
- 이 부분은 서로게이트 쌍, 발음 구별 기호와 유니코드 정규화 내용을 다룹니다. 필요하신 분들은 제목을 누르셔서 페이지에 넘어가셔서 공부해주세요~~
'JS' 카테고리의 다른 글
19-2 JS 배열2 (0) | 2022.11.28 |
---|---|
19-1 JS 배열1 (0) | 2022.11.22 |
18-2 JS 문자열2 (0) | 2022.11.18 |
18-1 JS 문자열1 (0) | 2022.11.16 |
17 JS 숫자형 (0) | 2022.11.15 |