我将展示我的代码和一些图片以证明问题。
像变量声明或使用log函数这样的简单语句会导致json结果未定义。当我输入文本输入时,执行ajax调用并返回数据。
已更新以下是我的代码,包含在文本中。复制并粘贴代码时,缺少花括号的问题非常明显。正如你在图片中看到的那样,VS 2017无法帮助你轻松地注意到缺失的牙箍,它们可以改善它。
for (var i = 0; i < data.length; i++)
console.log("some message");
console.log(data[i].titulo);
删除声明:
现在检查一下,当for循环中有一个语句时,它似乎只被评估一次。
当我接受陈述时,'i is x'被执行了更多次。
答案 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]...)
}
不仅要有多个语句,即使是单个语句,也要尽量使用{}来避免这样的混淆。