javascript变量警报,但使用时未定义
这很奇怪。看看这个:javascript变量警报,但使用时未定义,javascript,Javascript,这很奇怪。看看这个: for( var i = 0; i <= videos.length; i ++ ){ alert(videos[i].id); // this works and alerts the correct number var foo = videos[i].id; // firebug says "videos[i] is undefined" } for(var i=0;i摆脱for循环条件中的= for( var i = 0; i &l
for( var i = 0; i <= videos.length; i ++ ){
alert(videos[i].id); // this works and alerts the correct number
var foo = videos[i].id; // firebug says "videos[i] is undefined"
}
for(var i=0;i摆脱for
循环条件中的=
for( var i = 0; i < videos.length; i ++ ){
...
}
for(var i=0;i
使用摆脱for
循环条件中的=
for( var i = 0; i < videos.length; i ++ ){
...
}
for(var i=0;i
使用因为您正在执行i因为您正在执行i更改“更改”因为您的长度比可用数组长度长一个。数组索引以0
开始,并且通过在循环测试中包含=
,您的元素太长了。它只需要小于长度,而不等于。@freshyeball:您忘了说“请”3
元素。索引:0
,1
,2
@freshyeball查看我的解释答案。一个大于数组大小的元素可能会让我困惑。你是对的,我知道你的意思,但可以说I
将是3
,数组大小是3
…但也许我现在太挑剔了…该睡觉了;)晚安!(对世界的另一边说再见:)@alex-我会对此提出质疑,因为OP实际上并不是在迭代大于数组长度的索引。实际上,OP实际上是迭代到长度,这就是问题所在,因为原始索引是0
,而不是1
。我知道你的意思,但你的解释让外行感到困惑。因为你的长度比可用的数组长度长一个。数组索引从0
开始,通过在循环测试中包含=
,您将超出一个元素的范围。它只需要小于长度,而不是等于。@freshyeball:你忘了说“请”<代码>3个
元素。索引:0
,1
,2
@freshyeball请看我的解释答案。在我看来,一个大于数组的大小可能会让人困惑。你是对的,我知道你的意思,但可以说I
将是3
,数组的大小是3
。。。但也许我现在太挑剔了。。。应该睡觉;)晚安(对世界的另一边说再见:)@alex-我会对此提出质疑,因为OP实际上并不是在迭代大于数组长度的索引。实际上,OP实际上是迭代到长度,这就是问题所在,因为原始索引是0
,而不是1
。我知道你的意思,但你的解释让外行感到困惑。