JavaScript/String/fromCharCode
< JavaScript | String
String.fromCharCode()
は、指定されたコードユニット(UTF-16 コードユニット)に対応する文字列を生成する静的メソッドです。このメソッドは、1つ以上のコードユニットを受け取り、それらを文字列に変換します[1]。
構文
編集String.fromCharCode(...codeUnits)
...codeUnits
: 文字列に変換するコードユニット(複数指定可能)。
例
編集単一のコードユニットから文字列を生成するプログラム
編集以下のプログラムは、String.fromCharCode()
を使用して単一のコードユニットから文字列を生成します。
const str = String.fromCharCode(65); // コードユニット 65 は 'A' を表す console.log(str); // "A"
このプログラムでは、コードユニット 65
に対応する文字列 "A"
を生成しています。
複数のコードユニットから文字列を生成するプログラム
編集以下のプログラムは、String.fromCharCode()
を使用して複数のコードユニットから文字列を生成します。
const str = String.fromCharCode(72, 69, 76, 76, 79); // コードユニット 72, 69, 76, 76, 79 は 'HELLO' を表す console.log(str); // "HELLO"
このプログラムでは、複数のコードユニットに対応する文字列 "HELLO"
を生成しています。
サロゲートペアを使用した文字列生成のプログラム
編集以下のプログラムは、サロゲートペアを使用してサロゲートペアが必要な文字を生成します。
// サロゲートペアを使用して '😊' (U+1F60A) を生成 const highSurrogate = 0xD83D; // 上位サロゲート const lowSurrogate = 0xDE0A; // 下位サロゲート const str = String.fromCharCode(highSurrogate, lowSurrogate); console.log(str); // "😊"
このプログラムでは、サロゲートペアを使用して、1つのコードユニットでは表現できない文字 "😊"
を生成しています。
注意点
編集- コードユニットの範囲:
String.fromCharCode()
は、コードユニットが0
から0xFFFF
の範囲内であることを想定しています。範囲外の値は、ToUint16
によって 16 ビットの符号なし整数に変換されます。 - サロゲートペア: サロゲートペアが必要な文字(例えば、ほとんどの絵文字)を生成する場合、上位サロゲートと下位サロゲートの両方を指定する必要があります。
- 空の引数: 引数が空の場合、
String.fromCharCode()
は空の文字列を返します。 - length プロパティ:
String.fromCharCode
関数のlength
プロパティは1
です。これは、この関数が少なくとも1つの引数を期待していることを示します。
脚註
編集- ^ これは、UTF-16 コードユニットから文字列を生成するために使用されます。
外部リンク
編集