JavaScriptのStringオブジェクトのcharCodeAt()メソッドについて記載します。
概要、実際のサンプルコードを交えて構文などの使い方をまとめてみました。
JavaScriptのStringオブジェクトとは?
JavaScript(JS) のStringオブジェクト(文字列)は、他の言語と比べて、動的なデータ型として定義されています。
そして、 他のプログラミング言語 (C 言語など) とは異なり、文字列のメソッドが豊富に用意されています。
また、文字列と数値を効率的に相互変換する方法も提供されています。
事前に定義されたメソッドを利用して文字列操作が容易に出来る点も他言語と比べても有利な点ですが、他の言語と比べて一部の文字列処理が遅くなることがあるとも言われています。
それでは、次に本題の説明に移ります。
JavaScriptのStringオブジェクトのcharCodeAt()概要
charCodeAt()は、文字列内の指定した位置の文字のUnicodeコードポイントを取得するJavaScriptのStringオブジェクトのメソッドです。
構文、使い方
1 |
String.prototype.charCodeAt(index) |
使い方: 文字列のindex番目の文字のUnicodeコードポイントを返す。
indexが文字列の長さを超えている場合はNaNを返す。
引数について
charCodeAt()の引数は、文字列の中の何番目の文字を取得するかを指定するインデックス番号です。
返り値について
charCodeAt()は、文字列内の指定した位置の文字のUnicodeコードポイントを返します。
このメソッドを利用した便利なテクニック
StringオブジェクトのcharCodeAt()を使うと、文字列の任意の位置にある文字のUnicodeコードポイントを取得することができます。
これを使うと、文字列をループ処理して、文字列内の文字を1文字ずつ処理することができます。
現場で実際にどのように使われているか
charCodeAt()は、文字列の1文字目から指定した位置の文字のUnicodeコードポイントを取得するために使用されます。
例えば、文字列””Hello””の3文字目の文字のUnicodeコードポイントを取得するには、次のようにします。
1 2 |
let str = ""Hello""; let code = str.charCodeAt(2); // code = 108 |
JavaScriptのStringオブジェクトのcharCodeAt()と一緒によく使われる処理
StringオブジェクトのcharCodeAt()は、文字列内の1文字のUnicodeコードポイントを取得するために使用されます。
それと一緒によく使われる処理は、StringオブジェクトのfromCharCode()で、Unicodeコードポイントを文字列に変換する処理です。
これらを組み合わせることで、文字列内の各文字を取得して変換することができます。
使用する上での注意点
– 文字列が空の場合、charCodeAt()はNaNを返します。
– 文字列の長さよりも大きなインデックスを渡すと、charCodeAt()はundefinedを返します。
JavaScriptのStringオブジェクトのcharCodeAt()と似た処理のJSメソッド、違い
codePointAt()と似ていますが、下記違いがあります。
codePointAt()はサロゲートペアを考慮した文字コードを取得する点です。
JavaScriptのStringオブジェクトのcharCodeAt()を使ったサンプルコードの紹介
charCodeAt()のサンプルコード
1 2 3 4 5 6 7 8 |
// 文字列を指定 var str = 'ABC'; // 0番目の文字の文字コードを取得 var code = str.charCodeAt(0); // 結果を表示 console.log(code); |
文字コードを文字に変換するサンプルコード
1 2 3 4 5 6 7 8 |
// 文字コードを指定 var code = 65; // 文字コードを文字に変換 var str = String.fromCharCode(code); // 結果を表示 console.log(str); |
JavaScript stringオブジェクトの他メソッドについて
JavaScriptのstringオブジェクトの他メソッドについては、下記記事にもまとめていますので参考にしてみてください
また、JavaScriptの公式ドキュメントであるMDNで記載されているstringオブジェクトのcharCodeAtメソッドについても補足としてリンクを貼っておきます。
参考にしてみてください。