JavaScript での文字列インターニング
この質問では、V8 や WebKit の JavaScriptCore などの JavaScript 実装が JavaScript 文字列の文字列インターニングを利用するかどうかを調査します。文字列インターニングは、プログラム内の同一の文字列をメモリ内の 1 つの場所に保存し、正規表現を効果的に作成する手法です。
答え:
はい、一般的な JavaScript実際、エンジンは、JavaScript ソース コード内のリテラル文字列、識別子、およびその他の定数文字列に対して文字列インターニングを採用しています。ただし、実装の詳細はエンジンによって異なる場合があることに注意してください。
実装の詳細:
インターニングは通常、解析またはコンパイル中に発生します。エンジンは、文字列をインターン表現にマッピングするハッシュ テーブルを作成します。新しい文字列が見つかると、ハッシュ化され、インターンされた文字列と比較されます。一致する文字列が存在する場合、エンジンは新しいインスタンスを作成する代わりに、インターンされた表現を使用します。
文字列オブジェクトと文字列値:
を区別することが重要です。文字列値と String オブジェクト。文字列値はインターンされますが、String オブジェクトはインターンされません。 String オブジェクトは単純な文字列表現を超える追加機能を提供するため、String オブジェクトをインターニングすると不正な動作が発生します。
以上がJavaScript は文字列インターンを使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。