Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
charAt() は String 値のメソッドで、指定されたインデックスにある単一の UTF-16 コード単位からなる新しい文字列を返します。
charAt() は常に文字列を UTF-16 コード単位の並びとして索引付けます。そのため、孤立したサロゲートを返す可能性があります。指定されたインデックスの完全な Unicode コードポイントを取得するには、String.prototype.codePointAt() および String.fromCodePoint() を使用してください。
返される文字のゼロから始まる文字のインデックスです。整数に変換されます。undefined は 0 に変換されます。
指定された index の位置にある文字(厳密に 1 つの UTF-16 コードポイント)を表す文字列です。index の位置が文字列の範囲を外れていた場合は、charAt() は空文字列を返します。
文字列の中の文字は、左から右に向けてインデックス付けされています。最初の文字の添字は 0 であり、最後の文字の添字は str という名前の文字列であれば str.length - 1 です。
Unicode のコードポイントは 0 から 1114111 (0x10FFFF) までの範囲です。charAt() は常に 65536 より小さい値を返しますが、これは上位のコードポイントは 16 ビットのサロゲート擬似文字のペアによって表されているからです。したがって、65535 より大きい値を持つ完全な文字を取得するには、charAt(i) だけでなく charAt(i + 1) も取得するか(2 つの文字を持つ文字列を操作する場合と同じです)、または codePointAt(i) と String.fromCodePoint() を使用する必要があります。Unicode に関する情報はUTF-16 文字、Unicode コードポイント、書記素クラスターを参照してください。
charAt() は ブラケット記法を使用して指定された位置の文字にアクセスするのにとても似ています。主な違いは次の通りです。
次の例は、`"Brave new world"`` という文字列の中の様々な位置の文字を表示します。
これらの行は以下のように表示されます。
The character at index 0 is 'B' The character at index 0 is 'B' The character at index 1 is 'r' The character at index 2 is 'a' The character at index 3 is 'v' The character at index 4 is 'e' The character at index 999 is ''charAt() は妥当な Unicode 文字ではない、孤立サロゲートを返す可能性があります。
指定された位置の完全な Unicode コードポイントを取得するには、String.prototype.codePointAt() やスプレッド構文のように、Unicode コードポイントで分割して Unicode コードポイントの配列にするインデックスメソッドを使用してください
メモ: charAt() を使用して上記の解決策を再実装することは避けてください。孤立サロゲートの検出とそのペアリングは複雑で、文字列の内部表現を直接使用する組み込み API の方がパフォーマンスが高いかもしれません。必要であれば、上記の API のポリフィルをインストールしてください。
| ECMAScript® 2027 Language Specification # sec-string.prototype.charat |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年8月22日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.