怎么清空javascript數(shù)組
更新時(shí)間:2013年05月11日 17:22:29 作者:
這是一個(gè)很基礎(chǔ)的問題,但是我們往往經(jīng)常做錯(cuò),這里簡單分享下,方便需要的朋友
當(dāng)一個(gè)數(shù)組需要清空的時(shí)候,很多人使用下面的方法:
a = [];
我們知道javascript變量存儲(chǔ)方式分為引用類型和直接量。數(shù)組屬于對象,即引用類型,引用的是變量指針地址,之所以這樣設(shè)計(jì)也是為了節(jié)省內(nèi)存。
再說到上面的請空數(shù)組的方式,如果采用直接賦值一個(gè)新數(shù)組的方式,那么之前引用的數(shù)組可能不會(huì)被釋放(有其他的引用),例如下面的代碼:
var a = [2,3];
var b = a;
a = [];
console.log(b);
這時(shí)候a和b就不是同一個(gè)數(shù)組了,清空了a而b還是指到之前的引用地址,除非你是故意的,否則這將會(huì)有隱患。
所以最佳的請空數(shù)組方式是:將length設(shè)置為0,即:
a.length = 0;
轉(zhuǎn)自 JS8.IN ™
復(fù)制代碼 代碼如下:
a = [];
我們知道javascript變量存儲(chǔ)方式分為引用類型和直接量。數(shù)組屬于對象,即引用類型,引用的是變量指針地址,之所以這樣設(shè)計(jì)也是為了節(jié)省內(nèi)存。
再說到上面的請空數(shù)組的方式,如果采用直接賦值一個(gè)新數(shù)組的方式,那么之前引用的數(shù)組可能不會(huì)被釋放(有其他的引用),例如下面的代碼:
復(fù)制代碼 代碼如下:
var a = [2,3];
var b = a;
a = [];
console.log(b);
這時(shí)候a和b就不是同一個(gè)數(shù)組了,清空了a而b還是指到之前的引用地址,除非你是故意的,否則這將會(huì)有隱患。
所以最佳的請空數(shù)組方式是:將length設(shè)置為0,即:
復(fù)制代碼 代碼如下:
a.length = 0;
轉(zhuǎn)自 JS8.IN ™
相關(guān)文章
基于JavaScript實(shí)現(xiàn)的快速排序算法分析
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)的快速排序算法,分析了快速排序的原理并結(jié)合實(shí)例形式給出了javascript快速排序的操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-04-04JavaScript?排他思想的具體實(shí)現(xiàn)
排他思想的算法就是排除掉其他的,本文主要介紹了JavaScript?排他思想的實(shí)現(xiàn),以及介紹了兩個(gè)示例,感興趣的可以了解一下2021-11-11JavaScript數(shù)組方法的錯(cuò)誤使用例子
在本篇文章中我們給大家分享了幾種使用JavaScript數(shù)組容易出錯(cuò)的例子,需要的朋友們可以參考下。2018-09-09javascript實(shí)現(xiàn)全角與半角字符的轉(zhuǎn)換
這篇文章主要介紹了javascript實(shí)現(xiàn)全角與半角字符的轉(zhuǎn)換的相關(guān)代碼與知識(shí)點(diǎn)分享,需要的朋友可以參考下2015-01-01JavaScript語言中的Literal Syntax特性分析
JavaScript語言中的Literal Syntax特性分析...2007-03-03JS Object.preventExtensions(),Object.seal()與Object.freeze()用
這篇文章主要介紹了JS Object.preventExtensions(),Object.seal()與Object.freeze()用法,結(jié)合實(shí)例形式分析了javascript控制對象擴(kuò)展、密封、凍結(jié)等相關(guān)函數(shù)與操作技巧,需要的朋友可以參考下2018-08-08