[英]Why does this For loop crash the browser lab?
可能是一个愚蠢的问题,但是为什么这个简单的循环会崩溃?
HTML:
<p></p>
JS:
var array = ["1", "2", "3", "4"];
for(var x = 0; x = array.length; x++) {
$("p").html(array[x]);
}
示例在这里提琴。
因为x = array.length
不是一个“ 真实 ”条件,所以相等在迭代中毫无意义。
尝试这个:
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
您有2个错误:
首先,您不测试条件。 x = array.length;
是归因而不是比较。 您将array.length分配给x而不是比较它们。 正确的比较语句为:
x == array.length;
第二,即使它是一个比较,它也会超过数组长度,因为数组索引是从零开始的。
所以正确的是:
var array = ["1", "2", "3", "4"];
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
由于Long数组具有键,因此条件将为true,就像while循环一样。
var array = ["1", "2", "3", "4"];
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
这将在最后一个元素上停止。
您的循环基于x,并以0初始化。
通过执行以下操作来评估循环条件:
x = array.length
这将返回x的值,不等于0,'',false,undefined或null,因此此条件将始终为正。
循环不断反复进行迭代,始终为x分配相同的值,这将导致无限循环。
尝试x < array.length
而不是x = array.length
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.