JavaScript/String/prototype/codePointAt

カテゴリ:Book:JavaScript#String/prototype/codePointAt%20

String.prototype.codePointAt() は、文字列内の指定された位置にある文字のUnicodeコードポイント値を返すメソッドです。このメソッドは、サロゲートペアを正しく処理し、完全なUnicodeコードポイント値(0から0x10FFFF)を取得します[1]

構文

str.codePointAt(index)
  • index: 取得したい文字の位置を示す0以上の整数。

通常の文字のコードポイントを取得するプログラム

以下のプログラムは、codePointAt() を使用して通常の文字のコードポイントを取得します。

const str = 'ABC';
console.log(str.codePointAt(0)); // 65 ("A"のコードポイント)
console.log(str.codePointAt(1)); // 66 ("B"のコードポイント)
console.log(str.codePointAt(2)); // 67 ("C"のコードポイント)

このプログラムでは、codePointAt() を使用して基本的な文字のコードポイントを取得しています。

サロゲートペアの文字のコードポイントを取得するプログラム

以下のプログラムは、サロゲートペアの文字のコードポイントを取得します。

const str = '𠮷'; // サロゲートペアの文字
console.log(str.codePointAt(0)); // 134071 ("𠮷"のコードポイント)
console.log(str.charCodeAt(0)); // 55362 (上位サロゲート)
console.log(str.charCodeAt(1)); // 57271 (下位サロゲート)

このプログラムでは、codePointAt()charCodeAt() の違いを示し、サロゲートペアの処理の違いを確認しています。

注意点

  • インデックス: インデックスは0から始まります。
  • 範囲外: 指定された位置が文字列の長さ以上の場合、undefined を返します。
  • 負の数: 負の数が指定された場合、undefined を返します。
  • サロゲートペア: サロゲートペアの文字に対して正しいコードポイント値を返します。
  • charCodeAtとの違い: charCodeAt() はUTF-16コードユニットを返しますが、codePointAt() は完全なコードポイント値を返します。

脚註

  1. これは、文字列内の特定の位置にある文字のUnicodeコードポイント値を取得するために使用されます。

外部リンク

カテゴリ:Book:JavaScript#String/prototype/codePointAt%20 カテゴリ:JavaScript
カテゴリ:Book:JavaScript カテゴリ:JavaScript カテゴリ:Pages using the JsonConfig extension