没啥好说的,ie8貌似对数据格式要求很严。json数据最后一位多出一个“,”,for..in循环结果多出一位undefined的,去掉“,”恢复正常。如果在ie8for...in循环出错,就打印出来看是不是多一位吧。
另外在js中当一些不可枚举的属性比如toString被重写后,它会变成可枚举,然而当IE小于9,这些被重写的属性依旧是不可枚举,无法使用for in去遍历
鉴于有个兄弟提出质疑,回复不能贴图,代码运行效果如下:
var obj={a:1,b:2,c:3}
for(var i in obj){
console.log(i,obj[i]);
}
运行结果: