それでは、配列があるとしましょう:
var array = [1, 2, 3, 4, 5, 6]
次に、その配列への参照を新しい空の配列に再割り当てします。
array = [];
元の配列への参照がなくなったので、元の配列はメモリから削除されていますか?
それでは、配列があるとしましょう:
var array = [1, 2, 3, 4, 5, 6]
次に、その配列への参照を新しい空の配列に再割り当てします。
array = [];
元の配列への参照がなくなったので、元の配列はメモリから削除されていますか?
Probably not immediately (as part of the reassignment), but so long as the reference count to it has dropped to 0
(there is no other variable pointing to that array), it can be garbage collected.
答えはノーです(変数名が異なる場合[質問を変更したことがわかります])、質問に追加された新しい例のようにイエスです。var 名が異なる場合、必要に応じて元の配列を null にすることでメモリを解放できますが、どちらもスペースを消費します。配列 2 では、最初の配列の内容で実際に新しい配列を作成しています。オブジェクト (js の連想配列) は別の話ですが、上記の参照規則に従います。
同じスコープで同じ var 名を使用する場合は、はい。2 番目の呼び出しは、最初のシナリオからメモリを解放します。