當一個數組需要清空的時候,很多人使用下面的方法:
復制代碼 代碼如下:
a = [];
我們知道javascript變量存儲方式分為引用類型和直接量。數組屬於對象,即引用類型,引用的是變量指針地址,之所以這樣設計也是為了節省內存。
再說到上面的請空數組的方式,如果采用直接賦值一個新數組的方式,那麼之前引用的數組可能不會被釋放(有其他的引用),例如下面的代碼:
復制代碼 代碼如下:
var a = [2,3];
var b = a;
a = [];
console.log(b);
這時候a和b就不是同一個數組了,清空了a而b還是指到之前的引用地址,除非你是故意的,否則這將會有隱患。
所以最佳的請空數組方式是:將length設置為0,即:
復制代碼 代碼如下:
a.length = 0;
轉自 JS8.IN ™