C文字列は、「Hello \ 0World」が格納されているメモリ内のアドレスを指しますが、ほとんどの文字列処理関数は文字列の0の終わりを考慮します。一部の関数では、文字列の長さの引数を渡す必要がありますが、ほとんどの場合、ヌルバイトが見つかるまで読み取るだけです。メモリ内の文字列は、実際には「Hello \ 0World\0」です。
JavaScriptエンジンは、nullバイトを探すことによって文字列の長さを決定することはできません。そのような場合、文字列内にnullbyteを含めることはできないからです。スペックにはおそらくそれについて何かがあります。エンジンは、代わりに文字列の長さを個別に保存し、文字列にアクセスするたびにその数の文字をメモリから読み取る必要があります。
また、バッファのサイズを適切に解析して保存する方法は、スクリプト言語が通常ユーザーから隠そうとするものです。これはスクリプトの目的の半分です。プログラマーが0
作成された文字バッファーに追加したり、文字列の長さを個別に保存したりする必要がないため、文字列処理関数がバッファーの外にランダムな文字の束を出力してnullバイトを探したりすることはありません...
では、JavaScript文字列はどのように動作するのでしょうか。わかりませんが、そのプロパティを詳細に説明するのはおそらくエンジン次第です。仕様にあるようにオブジェクトとインターフェイスする限り、バッファと長さの構造体、0の変換文字、文字のリンクリストなどを使用して、どのような方法でも実装できます。