var list=[]
undefinedlist
[]list["v1"]=1
1list[0]
undefinedlist
[]list["v1"]
1list
[]list.length
0上面是chrome脚本控制台运行的结果,谁能告诉我为什么是这样的结果

解决方案 »

  1.   

    js是弱类型语言,所以数组中可以加入属性为v1的值,但不算入数组的长度。
      

  2.   


    //chrome控制台输出的时表达式的返回值
    var list=[]
    undefined//上面带var的表达式没有返回值list
    []//返回上面声明的list,空数组list["v1"]=1
    1//赋值表达式返回所赋的值list[0]
    undefined//数组中没有值list
    []//继续返回空数组list["v1"]
    1//数组本身也是object类型,返回上面赋的值list
    []//数组索引只能为数字,v1不是数字,不计入数组长度,长度为0,返回空数字,下同list.length
    0
      

  3.   

    <script type="text/javascript">
    var theforever_csdn=[];
    theforever_csdn.newAttr="5";
    alert(theforever_csdn['newAttr']); //显示5
    </script>对数组或对象变量来说,theforever_csdn['newAttr']和theforever_csdn.newAttr是等价的,表示访问对象的属性,所以对数组来说,它和数组成员无关,自然不影响数组的成员数量。