可能重复:
为什么 IE 核对 window.ABC 变量?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
</head>
<body>
<script>
if(typeof q === "undefined"){
window.q = {test: "test"};
}
alert("1="+q)
</script>
<script>
alert("2="+q)
if(typeof q === "undefined"){
var q = {};
}
alert("3="+q.test)
</script>
<script>
alert("4="+q.test)
</script>
</body>
在 IE8 中,结果是
1=[object Object]
2=undefined
3=undefined
4=undefined
第二个script
似乎覆盖q
了window
.
window.q = {test: "test"};
如果我将第一个的代码更改script
为q={test:"test"}
,结果将与其他浏览器相同。
这是IE中的错误吗?