一. 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) 直接调用方法也可以返回一个想要的数组;