作者:張小媫_602 | 来源:互联网 | 2023-02-01 23:56
IE 11中的控制台
Chrome中的控制台
如果我将循环中的单词'item'更改为'anotherItem',就像这样
var obj = {
id1: 'item 1',
id2: 'item 2',
id3: 'item 3'
};
for (anotherItem in obj){
console.log(anotherItem);
}
循环工作正常
为什么IE 11不处理单词'item'
1> thephpdev..:
item
在IE中被定义为本机函数,并且可能是只读的,因此是您无法更改其值的原因.
在加入Edge之前,微软并不喜欢遵守标准,而是引入了标准中没有的各种功能.该item
功能在Edge中不存在.
另外,你还没有宣布anotherItem
,试试这个:
试试这个:
var obj = {
id1: 'item 1',
id2: 'item 2',
id3: 'item 3'
};
for (var anotherItem in obj){
console.log(anotherItem);
}
如果您没有使用var
keywork 声明变量,并且您没有处于严格模式,那么它将被定义为全局变量(这不是您想要的).全局变量本质上是全局对象的属性,在Web浏览器的上下文中,它是window
对象.
将以下内容添加到JS文件的顶部以启用严格模式,然后您将无法首先犯这些错误,因为将抛出异常.
"use strict";
您还可以选择为特定功能启用严格模式,如下所示:
(function() {
"use strict";
// code here is in strict mode
})()