如果长度以数组的方括号表示法传递.它返回第一个元素.这里的基本逻辑是什么?
var foo= []; foo['0'] = 'hello'; foo[2] = {'fun': true}; foo[length];
T.J. Crowder.. 6
如果你在浏览器中运行该代码,那是因为window
对象(它是全局对象)有一个length
属性,它是它具有的子浏览上下文(iframe等)的数量.这是0
如果没有任何(这是经常发生的情况).在所有性能window
对象是全局,所以length
对自己是length
上window
,那么foo[length]
就是foo[0]
,这是"hello"
.
这length
与您的foo
阵列无关.你的foo
数组的长度是foo.length
.如果你用它在你的最后一行,你会得到undefined
的,因为在这一点上foo.length
是3
和你的数组没有任何条目foo[3]
.
如果你在浏览器中运行该代码,那是因为window
对象(它是全局对象)有一个length
属性,它是它具有的子浏览上下文(iframe等)的数量.这是0
如果没有任何(这是经常发生的情况).在所有性能window
对象是全局,所以length
对自己是length
上window
,那么foo[length]
就是foo[0]
,这是"hello"
.
这length
与您的foo
阵列无关.你的foo
数组的长度是foo.length
.如果你用它在你的最后一行,你会得到undefined
的,因为在这一点上foo.length
是3
和你的数组没有任何条目foo[3]
.