IE8会在没有声明var项目的情况下报告for的错误吗?

use*_*729 0 javascript for-loop internet-explorer-8

喜欢 :

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

for(item in result)
{

}
Run Code Online (Sandbox Code Playgroud)

response 是一个json的回应.

它停for..在IE8.

如何解决?

编辑

运行时遇到同样的错误:

result = [1,2,3];
for(item in result)
{
...
}
Run Code Online (Sandbox Code Playgroud)

o.k*_*k.w 5

我测试了JavaScript中的代码...在 IE8中的语句,没有问题.

绝对不是循环的问题(不在IE8中工作),而是'结果'对象中的内容.

更新:

我发现了这个问题.

在IE8中(不确定其他IE版本),"item"这个词在某种程度上是一个保留词或其他东西.

这将有效:

var item;
for(item in result)
{
...
}
Run Code Online (Sandbox Code Playgroud)

这不会(如果item没有声明):

for(item in result)
{
...
}
Run Code Online (Sandbox Code Playgroud)

这将有效:

for(_item in result)
{
...
}
Run Code Online (Sandbox Code Playgroud)