tl;dr
次のコード行は、オブジェクト (JavaScript String オブジェクトや JavaScript Number オブジェクトなど) を作成して、文字列プリミティブと数値を結合しますか?
var scouterSays = "powerlvl" + 9001;
完全な質問
私は JavaScript でゲーム エンジンを作成しており、ガベージ コレクションには細心の注意を払っています。http://www.scirra.com/blog/76/how-to-write-low-garbage-real-time-javascriptとhttp://buildnewgames.com/garbage-collector-friendly-codeを読みました/とても参考になりました。私はオブジェクト プーリングを実装し、可能な限りリンク リストを優先して配列操作を回避しました。
正しく理解している場合、プリミティブ文字列で文字列メソッドを呼び出すと、文字列オブジェクトが作成され、プリミティブ文字列が置き換えられます。例としては、長さ、部分文字列、indexOf などがあります。オブジェクト プーリングで文字列を使用してオブジェクト タイプを識別するため、プールからオブジェクトをプルするたびにガベージが作成されることが懸念されます。
要するに、次の場合、オブジェクト (JavaScript String オブジェクトや JavaScript Number オブジェクトなど) が作成されますか?
var byteSize = 4;
var objectType = "msg" + byteSize; //does this create a JS String/Number object?
var message = gameengine.pool.acquire(objectType);
また、関連する質問として、ビット演算 (~~() や << や >> など) を使用すると、JavaScript オブジェクトも作成されますか?