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年9月.
codePointAt() は String 値のメソッドで、指定されたインデックスから始まる文字の Unicode コードポイント値である非負の整数を返します。インデックスは Unicode コードポイントではなく、UTF-16 コード単位に基づくことに注意してください。
返す文字の 0 基点のインデックスです。整数に変換され、undefined は 0 に変換されます。
指定された位置 index にある文字のコードポイント値を表す非負の整数値です。
文字列の中の文字は、左から右に向けてインデックス付けされています。最初の文字の添字は 0 であり、最後の文字の添字は str という名前の文字列であれば str.length - 1 です。
Unicode のコードポイントは 0 から 1114111 (0x10FFFF) までの範囲です。UTF-16 では、それぞれの文字列のインデックスは 0 ~ 65536 のコード単位です。上位のコードポイントは 16 ビットのサロゲート擬似文字のペアによって表されます。したがって、codePointAt() は文字列の 2 つのインデックスにまたがるコードポイントを返す可能性があります。Unicode に関する情報はUTF-16 文字、Unicode コードポイント、書記素クラスターを参照してください。
文字列インデックスを使用してループ処理を行うと、同じコードポイントが 2 回参照されることになります(1 回目は上位サロゲート、2 回目は下位サロゲート)。また、2 回目に codePointAt() が返すのは下位サロゲートのみです。そのため、インデックスによるループ処理は避けた方が良いでしょう。
代わりに、for...of 文やスプレッド構文を使用してください。どちらも文字列の [Symbol.iterator]() を呼び出し、コードポイント単位で反復処理をします。それから、codePointAt(0) でそれぞれの要素のコードポイントを取得してください。
| ECMAScript® 2027 Language Specification # sec-string.prototype.codepointat |
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.