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

时间:2018-02-28 12:58:13

标签: javascript jquery

我将展示我的代码和一些图片以证明问题。

像变量声明或使用log函数这样的简单语句会导致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

1 个答案:

答案 0 :(得分: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]...)
     }

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