Just do IT

思うは招く

【JavaScript】charCodeAt();の使い方メモ

N予備校のプログラミング学習中(JavaScript)の勉強中に、次のような関数が出てきた。

'A'.charCodeAt(0); → 65

これはつまり、「Aという文字を整数値で表示すると65になるよ」ってこと。

なぜ65か。 それは、そうなっているから。

すべての文字には、それぞれ整数値が割り当てられていて、文字コードと呼ばれる。具体的には「ASCIIコード」が使われていて、それぞれデフォルトで決まっている。覚える必要はない。 その整数値を表示してくれるのが、charCodeAt();というわけだ。

MDNでは次のように説明されている。

charCodeAt() メソッドは、与えられたインデックスに位置する文字の UTF-16 コードを表す 0 から 65535 の整数を返します

developer.mozilla.org

また、charCodeAt();は文字列を配列として認識する。 たとえば、次の2つは同じ65という数値が返ってくる。

'ABC'.charCodeAt(0); → 65

'A'.charCodeAt(0); → 65

これらは先頭にあるAを整数値に変換しているので、結果は同じ。配列の先頭は0番目なので、()の中には0を入れて指定している。 つまり、「先頭(0番目にある)のAを整数値で表してよ〜」という命令になっている。Chromeデベロッパーツールのコンソール画面で試してみるとわかりやすい。

Bの整数値を知りたい場合は次のようになる。

'ABC'.charCodeAt(1); → 66

配列の考えでいくと、Bは1番目にあたる。つまりこれは、「1番目の文字(B)の整数値を表示してよ〜」という命令になっている。Bの整数値はデフォルトで66と決まっているため、コンピュータはそれを表示しただけ。

ちなみに、これが漢字になるとさらに大きな整数値として出力される。

'太郎'.charCodeAt(0); → 22826

それぞれの文字コードは、以下のページで「ASCIIコード」として紹介されている。

http://www.ced.is.utsunomiya-u.ac.jp/lecture/2005/prog/p2/kadai1/1.html