IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
數(shù)組(Array)在前端開發(fā)中經(jīng)常使用,今天我們來學(xué)習(xí)下數(shù)組。我們從Array創(chuàng)建方式(構(gòu)造函數(shù)、字面量),實(shí)例方法等方面來學(xué)習(xí)Array。
構(gòu)造函數(shù)。
Array是 JavaScript 的原生對(duì)象,同時(shí)也是一個(gè)構(gòu)造函數(shù),可以用它生成新的數(shù)組。
- var arr = new Array(2);
- console.log(arr.length); // 2
- console.log(arr); // [ empty x 2 ]
在上面代碼中,Array構(gòu)造函數(shù)的參數(shù)2,表示生成一個(gè)兩個(gè)成員的數(shù)組,每個(gè)位置都是空值。
如果沒有使用new,運(yùn)行結(jié)果也是一樣的。也就是 var arr = new Array(2); 等同于 var arr = Array(2);
Array構(gòu)造函數(shù)有一個(gè)很大的缺陷,就是不同的參數(shù),會(huì)導(dǎo)致它的行為不一致。
- // 無參數(shù)時(shí),返回一個(gè)空數(shù)組
- new Array() // []
-
- // 單個(gè)正整數(shù)參數(shù),表示返回的新數(shù)組的長(zhǎng)度
- new Array(1) // [ empty ]
- new Array(2) // [ empty x 2 ]
-
- // 非正整數(shù)的數(shù)值作為參數(shù),會(huì)報(bào)錯(cuò)
- new Array(3.2) // RangeError: Invalid array length
- new Array(-3) // RangeError: Invalid array length
-
- // 單個(gè)非數(shù)值(比如字符串、布爾值、對(duì)象等)作為參數(shù),則該參數(shù)是返回的新數(shù)組的成員
- new Array('abc') // ['abc']
- new Array([1]) // [Array[1]]
-
- // 多參數(shù)時(shí),所有參數(shù)都是返回的新數(shù)組的成員
- new Array(1, 2) // [1, 2]
- new Array('a', 'b', 'c') // ['a', 'b', 'c']
使用構(gòu)造函數(shù)Array創(chuàng)建數(shù)組,不傳參數(shù),會(huì)得到一個(gè)空數(shù)組;如果參數(shù)只有一個(gè)而且參數(shù)為正整數(shù),表示新數(shù)組的長(zhǎng)度;如果使用非正整數(shù)作為參數(shù),會(huì)報(bào)錯(cuò);如果單個(gè)非數(shù)字作為參數(shù),那么這個(gè)參數(shù)就是新數(shù)組的成員;如果是多個(gè)參數(shù),那么所有的參數(shù)都是新數(shù)組的成員。
通過上面的代碼,可以看到,Array作為構(gòu)造函數(shù),行為很不一致。因此,不建議使用它生成新數(shù)組,直接使用數(shù)組字面量是更好的做法,而我們?cè)陂_發(fā)中更多的也是使用字面量形式創(chuàng)建數(shù)組。比如下面的代碼:
- // 構(gòu)造函數(shù)形式
- var arr = new Array(1, 2, 3);
-
- // 字面量形式
- var arr = [1, 2, 3];
>>本文地址:http://www.yceu.cn/zhuanye/2021/67118.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?