可能重複:
What’s the difference between 「Array()」 and 「[]」 while declaring a JavaScript array?這些在javascript中定義數組的方法有什麼區別?
是什麼限定在JavaScript的陣列的這兩種方法之間的差異?
var arrayList = []
和
var arrayListAgain = new Array();
可能重複:
What’s the difference between 「Array()」 and 「[]」 while declaring a JavaScript array?這些在javascript中定義數組的方法有什麼區別?
是什麼限定在JavaScript的陣列的這兩種方法之間的差異?
var arrayList = []
和
var arrayListAgain = new Array();
一個是好的,另一個是壞:-)
沒有嚴重的是,第一種方式是短(更少的字節發送過來的電線)和它doesn」沒有任何奇怪的潛在問題。然而,第二個將會正常工作。
與new Array()
怪異的一部分是這樣的:如果傳遞一個數值參數給構造,它的意思是「初始化數組,以便有存在空的(null
)數組元素的給定數目,因此length
等於給定的數字。「 (好吧,它必須是一個整數,我想實際上。)如果你傳遞一個非數字或兩個或多個數字,它意味着「初始化數組,使其內容反映這個參數列表。」如果你使用某種服務器端框架,並且你想創建一個數值(整數值)數組,比如說唯一的數據庫鍵,那麼你可能會這樣做:
var keys = new Array(< @ favoriteTemplateLanguage.forEach(idList):print(id +',')@>);
(我當然構成了這個語法。)現在如果服務器端的密鑰列表中只有一個「id」會發生什麼?
什麼都沒有。兩者都創建一個Array對象的新實例。
Douglas Crockford在'Javascript the good parts'中推薦使用前一種方法,因爲它更簡潔。
Crockford也不鼓勵使用'++'和'--'作爲一些不起眼的原因...... – 2010-07-27 21:49:56
您可以使用第二個來定義預定義長度的數組,例如,
var arrayListAgain = new Array(20);
將創建一個包含20個(未定義)元素的數組。
另請參閱new Array (len)
。
它們是一樣的。據http://www.hunlock.com/blogs/Mastering_Javascript_Arrays:
當前的最佳實踐避開JavaScript的 原語 「新」的關鍵字。如果你想創建一個新的 陣列簡單地用括號[]像這樣 ...
var myArray = [];
我建議你閱讀該網頁,它包含了很多的關於一般陣列和JS有用的信息。
重複? http://stackoverflow.com/questions/931872/whats-the-difference-between-array-and-while-declaring-a-javascript-arr – Anders 2010-07-27 21:44:16
一個很漂亮,一個很醜。一個是數組文字,一個是創建一個新的數組對象。他們幾乎做同樣的事情......我從來沒有看到'新陣列(countOfUndefinedElements)'的使用;'雖然我猜會有一些。 – Warty 2010-07-27 21:58:58
使用文字初始化'[]'是微不足道的速度;) – 2010-07-27 22:19:33