2009-07-07 38 views
56

JSLint的是給我這個錯誤:什麼是JavaScript中的數組文字符號以及何時使用它?

Problem at line 11 character 33: Use the array literal notation [].

var myArray = new Array(); 

什麼是數組的文字符號和它爲什麼要我用它代替?

它顯示在這裏,new Array();應該可以正常工作......有什麼我失蹤了嗎?

+0

這與以下內容類似,但不完全相同:http://stackoverflow.com/questions/931872/whats-the-difference-between-array-and-while-declaring-a-javascript-arr/ – Borgar 2009-07-07 22:41:40

+1

[var x = new Array();]的錯誤[](http://stackoverflow.com/questions/885156/whats-wrong-with-var-x-new-array) – Bergi 2012-06-27 18:07:15

+0

也總是使用文字當你可以因爲Array構造函數(new Array())不總是正常工作。例如如果有一個值是一個數字。 > new Array(3,11,8)[3,11,8]> new Array(3)[,,,]> new Array(3.1)RangeError:無效數組長度 – 2017-12-20 14:59:34

回答

78

數組文字符號是使用空括號定義新數組的地方。在你的例子中:

var myArray = []; 

這是定義數組的「新」方式,我認爲它更短/更乾淨。

下面的例子說明它們之間的區別:

var a = [],   // these are the same 
    b = new Array(), // a and b are arrays with length 0 

    c = ['foo', 'bar'],   // these are the same 
    d = new Array('foo', 'bar'), // c and d are arrays with 2 strings 

    // these are different: 
    e = [3],    // e.length == 1, e[0] == 3 
    f = new Array(3); // f.length == 3, f[0] == undefined 

Reference: What’s the difference between 「Array()」 and 「[]」 while declaring a JavaScript array?

20

參見:What’s wrong with var x = new Array();

除了從克羅克福德的說法,我認爲這也是由於這樣的事實,其他的語言有碰巧使用相同語法的相似數據結構;例如,Python has lists and dictionaries;請參閱以下示例:

// this is a Python list 
a = [66.25, 333, 333, 1, 1234.5] 

// this is a Python dictionary 
tel = {'jack': 4098, 'sape': 4139} 

Python是否也在語法上正確嗎? (是的,結尾的分號不見了,但這些對於Javascript來說都不是必需的)

因此,通過在編程中重用常用範例,我們可以節省每個人重新學習不應該有的東西。

相關問題