---
# System prepended metadata

title: JavaScript　基礎編６（学習日：9/15）（文字列とUnicode、ラッパーオブジェクト）
tags: [JavaScript]

---

# JavaScript　基礎編６（学習日：9/15）（文字列とUnicode、ラッパーオブジェクト）
## 1. 文字列とUnicode
### Code Point　と　Code Unitの違い
a.　Code Pointとは
Code Pointは、文字に対する一意のIDのことである。＜ES2015以降対応＞
文字.codePointAt(インデックス) で取得できる。
逆に、コードポイントから文字を求めたいときは、
String.fromeCodePoint（コードポイント）で求められる。

b.　Code Unitとの違い
* Code Point（符号位置）
* Code Unit（符号単位）
ある範囲までは、両者は同一の値をとる。

c. サロゲートペア
Code Pointには、2バイト（1文字）で表現できず、4バイトを用いる文字がある。この場合、Code PointはCode Unitと異なる。こうしたCode Unitを2つ用いて1つのCode Pointが作られるペアをサロゲートペアという。

### Code Pointを扱う＜ES2015以降対応＞
a. 正規表現での区分
通常、Code Unit単位で表される。
サロゲートペアに該当する文字はCode Unitの一部が表示される。
Code Point単位で表せるよう、正規表現時にuフラグをつけると、サロゲートペアの文字が表示される。

b. Code Pointの数を数える
.length表現は、Code Unit単位で数えられるため、サロゲートペアは1文字でもlengthが2となる。
Array.fromメソッドを用いて、1文字ずつ配列に格納し、配列のlengthを表示する形であれば、文字数と一致する。
また、同じ要領で反復処理も実施できる。

## 2. ラッパーオブジェクト
プリミティブ型のデータに対応するオブジェクトをラッパーオブジェクトという。
Boolean,Number,String Symbolの４種がある。
これらは、プリミティブ型の値に対してプロパティアクセスをするときに、自動的にラッパーオブジェクトへと変換される。
逆に、ラッパーオブジェクトからvalueOfでプリミティブ型のデータを取り出すこともできる。

通常はプリミティブ型のデータにはリテラルを用いる。

###### tags: `JavaScript`