1
4

1 に答える 1

1

String.fromCharCode() 引数は 16 ビットの符号なし整数にマスクされ、これは ECMAScript 標準に準拠しています。したがって、String.fromCharCode(123456454545789) を実行すると、引数は最初に 20861 に減らされます。これは、20861 + n*65536 の形式の引数に対して発生するため、元の大きな数値を取得することは不可能です (または、正式に言えば、そのような数は無限に取得できます)。

これはサロゲート コード ポイントとは関係ありません。文字列「兽」は、1 つの BMP 文字のみで構成されています。BMP 以外の文字 (コード番号 > 0xFFFF) がある場合、たとえば '' (U+20000) の場合サロゲートが関連し、そのような文字列 (JavaScript で内部的に 2 つのサロゲート コード ポイントとして表される単一の Unicode 文字で構成される) に対応します。 、fromCharCode(0) および fromCharCode(1) が定義され、55360 および 56320 などのサロゲート コード ポイント値を生成します。標準で必要です。)

于 2012-04-11T10:46:26.633 に答える