在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ HTML/ Array 構(gòu)造函數(shù)
arguments 對(duì)象
類型轉(zhuǎn)換
構(gòu)造函數(shù)
instanceof 操作符
自動(dòng)分號(hào)插入
為什么不要使用 eval
對(duì)象使用和屬性
作用域與命名空間
this 的工作原理
typeof 操作符
相等與比較
閉包和引用
數(shù)組遍歷與屬性
Array 構(gòu)造函數(shù)
原型
hasOwnProperty 函數(shù)
undefined 和 null
函數(shù)聲明與表達(dá)式
setTimeout 和 setInterval
for in 循環(huán)

Array 構(gòu)造函數(shù)

由于 Array 的構(gòu)造函數(shù)在如何處理參數(shù)時(shí)有點(diǎn)模棱兩可,因此總是推薦使用數(shù)組的字面語(yǔ)法 - [] - 來(lái)創(chuàng)建數(shù)組。

    [1, 2, 3]; // 結(jié)果: [1, 2, 3]
    new Array(1, 2, 3); // 結(jié)果: [1, 2, 3]

    [3]; // 結(jié)果: [3]
    new Array(3); // 結(jié)果: [] 
    new Array('3') // 結(jié)果: ['3']

    // 譯者注:因此下面的代碼將會(huì)使人很迷惑
    new Array(3, 4, 5); // 結(jié)果: [3, 4, 5] 
    new Array(3) // 結(jié)果: [],此數(shù)組長(zhǎng)度為 3

譯者注:這里的模棱兩可指的是數(shù)組的兩種構(gòu)造函數(shù)語(yǔ)法

由于只有一個(gè)參數(shù)傳遞到構(gòu)造函數(shù)中(譯者注:指的是 new Array(3); 這種調(diào)用方式),并且這個(gè)參數(shù)是數(shù)字,構(gòu)造函數(shù)會(huì)返回一個(gè) length 屬性被設(shè)置為此參數(shù)的空數(shù)組。 需要特別注意的是,此時(shí)只有 length 屬性被設(shè)置,真正的數(shù)組并沒有生成。

譯者注:在 Firebug 中,你會(huì)看到 [undefined, undefined, undefined],這其實(shí)是不對(duì)的。在上一節(jié)有詳細(xì)的分析。

    var arr = new Array(3);
    arr[1]; // undefined
    1 in arr; // false, 數(shù)組還沒有生成

這種優(yōu)先于設(shè)置數(shù)組長(zhǎng)度屬性的做法只在少數(shù)幾種情況下有用,比如需要循環(huán)字符串,可以避免 for 循環(huán)的麻煩。

    new Array(count + 1).join(stringToRepeat);

譯者注: new Array(3).join('#') 將會(huì)返回 ##

結(jié)論

應(yīng)該盡量避免使用數(shù)組構(gòu)造函數(shù)創(chuàng)建新數(shù)組。推薦使用數(shù)組的字面語(yǔ)法。它們更加短小和簡(jiǎn)潔,因此增加了代碼的可讀性。