javaScriptにおけるfromCharCode()とcharCodeAt()の使い方

JavaScriptで文字列を扱う時にfromCharCode()charCodeAt()が便利だったので、まとめておきます。

fromCharCode()とcharCodeAt()の使い方

fromCharCode()は、ASCiiコードの番号を指定することで文字列を表示できるString.prototypeの関数で、charCodeAt()は文字のASCiiコードの番号を表示できる関数となる。

以下は、具体例を挙げてみる。

fromCharCode()の具体例

var char = String.fromCharCode( 48 );

console.log(char);  // "0"と表示

var str = String.fromCharCode(97, 98, 99);

console.log(str);  // "abc"と表示

上記の様にUnicode値にあった文字を返してくれるのが、fromCharCode()関数だ。引数を複数指定することで文字列を生成することができる。

fromCharCode()では、16bit、つまり2byteまでの文字に対応しており、絵文字などを表示させることはできない。もし、絵文字などもUnicode値で表示したい場合はfromCodePoint()関数を使えば良い。

ただ、fromCharCodeの使い道は「文字列の0 ~ 9を順番に表示させたい」とか「アルファベットを順番に表示させたい」と言う使い方が多いと思うので、fromCharCode()で十分だと思う。

参考記事:String.fromCharCode() | MDN

参考記事:String.fromCodePoint() | MDN

参考記事:ASCIIコード表

charCodeAtの具体的な使い方

charCodeAt()の具体的な使い方は以下の通りだ。

var code = 'a'.charCodeAt();

console.log(code);  // 97

var code2 = 'abc'.charCodeAt(2);

console.log(code2); // 99

上記の様にcharCodeAt()は指定した文字列の中の1文字を選び、その1文字のUnicode値を返してくれる関数だ。 引数を指定していなければ、引数には0が入る。

似たような関数にcharAt()があるが、これは文字列の内1文字を抜き出して表示する関数なので、役割が違う。

参考:String.prototype.charCodeAt() | MDN

参考:String.prototype.charAt() | MDN

fromCharCodeとcharCodeAtはいつ役に立つのか?

この両者の関数は、主に「アルファベットのa~zを順番に表示させたい」などの時に役立つだろう。

例えば、以下のコードがある。

for(let start = 'a'.charCodeAt(),  end = 'z'.charCodeAt(); start <= end; start++) {
  let char = String.fromCharCode(start);
  console.log(char);
}

上記のコードを実行すると、以下の結果となる。

"a"
"b"
"c"
  .
  .
"y"
"z"

ちなみに、C言語のように以下の様にできないのかと試したが、結果はaしか表示されなかった。

for(let start = 'a',  end = 'z'; start <= end; start++) {
  console.log(start);
}

// 'a'しか表示されない