Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
charCodeAt() メソッドは、指定された位置にある UTF-16 コード単位を表す 0 から 65535 までの整数を返します。
charCodeAt() は常に UTF-16 コード単位の並びとして文字列をインデックスするので、孤立サロゲートを返すかもしれません。コードポイント値全体を取得したい場合は、 String.prototype.codePointAt() を使用してください。
返す文字の 0 基点のインデックスです。整数に変換され、undefined は 0 に変換されます。
0 から 65535 までの整数を返します。これは index で指定された位置の UTF-16 コード単位の値を表します。index が 0 ~ str.length - 1 の範囲外であった場合、charCodeAt() は NaN を返します。
文字列の中の文字は、左から右に向けてインデックス付けされています。最初の文字の添字は 0 であり、最後の文字の添字は str という名前の文字列であれば str.length - 1 です。
Unicode のコードポイントは 0 から 1114111 (0x10FFFF) までの範囲です。charCodeAt() は常に 65536 より小さい値を返しますが、これは上位のコードポイントは 16 ビットのサロゲート擬似文字のペアによって表されているからです。したがって、65535 より大きい値を持つ完全な文字を取得するには、charCodeAt(i) だけでなく charCodeAt(i + 1) も取得するか(2 つの文字を持つ文字列を操作する場合と同じです)、または codePointAt(i) を使用する必要があります。Unicode に関する情報はUTF-16 文字、Unicode コードポイント、書記素クラスターを参照してください。
以下の例では、 Unicode 文字の A である 65 を返します。
charCodeAt() は妥当な Unicode 文字ではない、孤立サロゲートを返す可能性があります。
指定された位置の完全な Unicode コードポイントを取得するには、String.prototype.codePointAt() を使用してください。
メモ: charCodeAt() を使用して codePointAt() を再実装することは避けてください。孤立サロゲートの検出とそのペアリングは複雑で、文字列の内部表現を直接使用する組み込み API の方がパフォーマンスが高いかもしれません。必要であれば、codePointAt() のポリフィルをインストールしてください。
以下は Unicode FAQ から引用した、UTF-16 コードユニットのペアを Unicode コードポイントに変換する可能なアルゴリズムです。
| ECMAScript® 2027 Language Specification # sec-string.prototype.charcodeat |
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。