Javascript 为什么这个For循环会使浏览器实验室崩溃?
可能是个愚蠢的问题,但为什么这个简单的循环会崩溃呢 HTML:Javascript 为什么这个For循环会使浏览器实验室崩溃?,javascript,jquery,Javascript,Jquery,可能是个愚蠢的问题,但为什么这个简单的循环会崩溃呢 HTML: JS: var array = ["1", "2", "3", "4"]; for(var x = 0; x = array.length; x++) { $("p").html(array[x]); } 示例Fiddle.因为x=array.length不是一个“真实”条件,并且等式在迭代中没有任何意义 试试这个: for(var x = 0; x < array.length; x++) {
JS:
var array = ["1", "2", "3", "4"];
for(var x = 0; x = array.length; x++) {
$("p").html(array[x]);
}
示例Fiddle.因为
x=array.length
不是一个“真实”条件,并且等式在迭代中没有任何意义
试试这个:
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
for(var x=0;x
因为x=array.length
不是一个“真实”条件,并且等式在迭代中没有任何意义
试试这个:
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
for(var x=0;x
只要数组中有键,您的条件就会为真,就像一个while循环
var array = ["1", "2", "3", "4"];
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
var数组=[“1”、“2”、“3”、“4”];
对于(var x=0;x
这将在最后一个元素停止。只要数组有键,您的条件将为true,就像while循环一样
var array = ["1", "2", "3", "4"];
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
var数组=[“1”、“2”、“3”、“4”];
对于(var x=0;x
这将在最后一个元素上停止。尝试
x
而不是x=array.length
尝试x
而不是x=array.length您的循环基于x,x以0初始化
通过执行以下命令来评估循环条件:
x = array.length
它返回x的值,不等于0',false,undefined或null,因此此条件始终为正值
循环继续反复迭代,始终为x指定相同的值,这将产生无限循环。您的循环基于x,x以0初始化
通过执行以下命令来评估循环条件:
x = array.length
它返回x的值,不等于0',false,undefined或null,因此此条件始终为正值
循环将继续反复迭代,始终为x指定相同的值,这将执行无限循环。您得到两个错误:
首先,您不测试条件<代码>x=数组长度代码>是属性而不是比较。您正在将array.length与x进行对接,而不是进行比较。正确的比较声明将是:
x == array.length;
var array = ["1", "2", "3", "4"];
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
第二,即使是比较,它也会超过数组长度,因为数组索引是基于零的
因此,正确的答案是:
x == array.length;
var array = ["1", "2", "3", "4"];
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
var数组=[“1”、“2”、“3”、“4”];
对于(var x=0;x
您有两个错误:
首先,您不测试条件<代码>x=数组长度代码>是属性而不是比较。您正在将array.length与x进行对接,而不是进行比较。正确的比较声明将是:
x == array.length;
var array = ["1", "2", "3", "4"];
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
第二,即使是比较,它也会超过数组长度,因为数组索引是基于零的
因此,正确的答案是:
x == array.length;
var array = ["1", "2", "3", "4"];
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
var数组=[“1”、“2”、“3”、“4”];
对于(var x=0;x
因为循环从未停止过,所以执行的是x=array.length而不是x==array.length。即使这样,它也应该是x==array.length-1或x
,这可能是您在给定循环内容的情况下想要的。您并没有破坏浏览器,只是用一个无限循环将其挂起。正如您已经证明的,我已经忘记了如何进行循环。你的第二句话是错的。只有在最后一次迭代中才是这样,因为循环从未停止过,所以您正在执行x=array.length而不是x==array.length。即使这样,它也应该是x==array.length-1或x
,这可能是您在给定循环内容的情况下想要的。您并没有破坏浏览器,只是用一个无限循环将其挂起。正如您已经证明的,我已经忘记了如何进行循环。你的第二句话是错的。只有在最后一次迭代中才会出现这种情况。如果您执行x!=array.length
,但不要这样做。@4castle这是不平等的。您应该提到它无限循环的原因是因为4
是一个真实的值x=array.length
赋值,但也返回4
。如果执行x!=array.length
,但不要这样做。@4castle这是不平等的。您应该提到它无限循环的原因是因为4
是一个真实的值x=array.length
赋值,但也返回4
。这并不能回答问题。它更适合作为评论,但在这种情况下,评论已经发表了。这并不能回答问题。它更适合作为评论,但在这种情况下,评论已经发表了。