Javascript IE8将报告中的错误,但不声明var项?

Javascript IE8将报告中的错误,但不声明var项?,javascript,internet-explorer-8,for-loop,Javascript,Internet Explorer 8,For Loop,比如: response是一个json响应 它在IE8中的..处停止 如何解决这个问题 编辑 我在运行时遇到了相同的错误: var result = eval('(' + response + ')'); var html = value = ''; for(item in result) { } 我测试了IE8中的代码,没有问题 绝对不是循环的问题(在IE8中不起作用),而是“result”对象中的内容 更新: 我发现了问题 在IE8(不确定其他IE版本)中,“item”一词在某种程度上

比如:

response
是一个json响应

它在IE8中的..处停止

如何解决这个问题

编辑

我在运行时遇到了相同的错误:

var result = eval('(' + response + ')');
var html = value = '';

for(item in result)
{

}
我测试了IE8中的代码,没有问题

绝对不是循环的问题(在IE8中不起作用),而是“result”对象中的内容

更新:

我发现了问题

在IE8(不确定其他IE版本)中,“item”一词在某种程度上是一个保留字或什么的

这将有助于:

result = [1,2,3];
for(item in result)
{
...
}
for(item in result)
{
...
}
这将不会(如果未声明
项目
):

这将有助于:

result = [1,2,3];
for(item in result)
{
...
}
for(item in result)
{
...
}
我测试了IE8中的代码,没有问题

绝对不是循环的问题(在IE8中不起作用),而是“result”对象中的内容

更新:

我发现了问题

在IE8(不确定其他IE版本)中,“item”一词在某种程度上是一个保留字或什么的

这将有助于:

result = [1,2,3];
for(item in result)
{
...
}
for(item in result)
{
...
}
这将不会(如果未声明
项目
):

这将有助于:

result = [1,2,3];
for(item in result)
{
...
}
for(item in result)
{
...
}

您应该使用
var
显式声明
item
。在中使用“
for..in”的标准惯用法如下,并且只能用于对象(而不是数组)上的迭代:


您应该使用
var
显式声明
item
。在
中使用“
for..in”的标准惯用法如下,并且只能用于对象(而不是数组)上的迭代:


没听说过,你想用的代码是什么?详细说明你期望它做什么,以及它在做什么。我认为(结果)是不可评估的?因此,它可能为null或未定义。我尝试了
typeof result
,这是刚刚检查的“object”,但您正在通过result[item]访问结果项,对吗?另外,您确定响应是有效的JSON吗?从未听说过,您尝试使用的代码是什么?详细说明您期望它做什么,以及它正在做什么。我认为(结果)是不可评估的?因此,它可能为null或未定义。我尝试了
typeof result
,这是刚刚检查的“object”,但您正在通过result[item]访问结果项,对吗?另外,您确定响应是有效的JSON吗?事实证明,这是因为缺少以下语句:
var item。你遇到过这个问题吗?请在我的更新帖子中查看我的发现。”“项目”确实是罪魁祸首。如果你没有在评论中突出显示“var项目”,我也永远不会发现:)事实证明,这是因为缺少以下语句:
var项目。你遇到过这个问题吗?请在我的更新帖子中查看我的发现。”“项目”确实是罪魁祸首。如果您不在评论中突出显示“var项目”,我也永远不会发现:)