天天看點

javascript - Array.length的問題

一. Array.length在浏覽器裡的差異

<script type="text/javascript">

var arr=[1,2,3,];

alert(arr.length);

</script>

上段代碼文法上是正确的,在IE裡彈出4,在Firefox裡彈出3,其實際效果如下:

IE:

<script type="text/javascript">

var arr=new Array(4);

arr[0]=1;

arr[1]=2;

arr[2]=3;

alert(arr.length);

</script>

Firefox:

<script type="text/javascript">

var arr=Array(3);

arr[0]=1;

arr[1]=2;

arr[2]=3;

alert(arr.length);

</script>

二.Array的普通屬性不計入Array.length;

<script type="text/javascript">

var arr=new Array();

arr[0]="a";

arr[1]="b";

arr[2]="c";

alert(arr.length);

arr["3"]="d";

alert(arr.length);

arr["name"]="goofy"

alert(arr.length)

</script>

上面的代碼第1次彈出3,第2次彈出4,第3次還是彈出4;

Array作為數組的特性是索引屬性,但作為一個對象,它也可以定義普通屬性,這個普通屬性是不計入Array.length的,值得注意的是arr["3"]等同于arr[3],這個是計入Array.length裡的。

另外:

1.var arr=new Array(1,2,3,)文法上是不正确的;

2.var arr=Array(1,2,3) 直接調用方法也可以傳回一個想要的數組;

繼續閱讀