for循环中的奇怪行为,语句未执行

问题描述 投票:0回答:1

我将展示我的代码和一些图像来演示问题。

像变量声明或使用日志函数这样的简单语句会导致json结果未定义。当我输入文本输入时,执行ajax调用并返回数据。

更新这是我的代码包含在文本中。复制并粘贴代码时,缺少花括号的问题非常明显。正如你在图片中看到的那样VS 2017无法帮助你轻松地注意到缺少牙箍,它们可以改善它。

for (var i = 0; i < data.length; i++)

                   console.log("some message");
               console.log(data[i].titulo);

enter image description here

删除声明:

enter image description here

现在检查一下,当for循环中有一个语句时,它似乎只被评估一次。

enter image description here

当我接受语句时,'i is x'被执行了更多次。

enter image description here

javascript jquery
1个回答
2
投票

与您使用的json无关。纯粹关于for循环而不使用花括号。

你错过了你的循环{}。没有{}只有第一个语句属于for循环

所以在你的情况1中,你的代码等于

for ( ..) {
 console.log(..);
}
console.log(data[i]...)

它在案例2中工作,因为您删除了控制台日志语句,因此它等于

 for ( ..) {
     console.log(data[i]...)
 }

如果你想在循环中使用两个语句,请使用{}

for ( ..) {
         console.log(..);
         console.log(data[i]...)
     }

不仅要有多个语句,即使是单个语句,也要尽量使用{}来避免这样的混淆。

© www.soinside.com 2019 - 2024. All rights reserved.