我想我会疯了.我有一个简单的问题,我出于某种原因正在努力.
为什么以下返回'undefined'?
var testvar={};
testvar[1]=2;
testvar[2]=3;
alert(testvar.length);
Run Code Online (Sandbox Code Playgroud)
编辑我最初键入testvar [1] .length.我知道这是一个错误.我的意思是testvar.length
Cam*_*ron 85
因为2不是数组,所以它是一个数字.数字没有长度.
也许你打算写testvar.length; 这也是未定义的,因为对象(使用{ ... }符号创建)没有长度.
只有数组具有length属性:
var testvar = [ ];
testvar[1] = 2;
testvar[2] = 3;
alert(testvar.length); // 3
Run Code Online (Sandbox Code Playgroud)
请注意,Javascript数组从索引开始0并且不一定是稀疏的(因此为什么结果是3而不是2 - 请参阅此答案以获得有关何时数组将稀疏以及何时不稀疏的解释).