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'しか表示されない