簡體   English   中英

什么是JavaScript中的數組文字符號,何時使用它?

[英]What is array literal notation in javascript and when should you use it?

JSLint給了我這個錯誤:

第11行第33個問題:使用數組文字符號[]。

var myArray = new Array();

什么是數組文字符號?為什么它要我使用它?

它在這里顯示了new Array(); 應該工作得很好......有什么我想念的嗎?

array literal表示法是使用空括號定義新數組的位置。 在你的例子中:

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

參考聲明JavaScript數組時“Array()”和“[]”之間有什么區別?

另請參見: var x = new Array()有什么問題;

除了Crockford論點之外,我認為這也是由於其他語言具有類似的數據結構,恰好使用相同的語法; 例如, Python有列表和詞典 ; 請參閱以下示例:

// 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? (是的,結束的分號丟失了,但Javascript也不需要那些)

因此,通過重用編程中的常見范例,我們可以避免每個人重新學習不應該的內容。

除了克羅克福德的論點,jsPerf說它更快。 http://jsperf.com/new-vs-literal-array-declaration

看完@ecMode jsperf后,我做了一些進一步的測試。

當使用push添加到數組時,新的Array()在Chrome上要快得多:

http://jsperf.com/new-vs-literal-array-declaration/2

對於[],使用索引添加稍快一些。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM