繁体   English   中英

为什么此For循环会使浏览器实验室崩溃?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM