5

可能重复:
为什么 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似乎覆盖qwindow.

window.q = {test: "test"};如果我将第一个的代码更改scriptq={test:"test"},结果将与其他浏览器相同。

这是IE中的错误吗?

4

1 回答 1

2

对我来说似乎是一个错误。在 IE 10 中,上述产生

1=[object Object]
2=[object Object]
3=test
4=test

这与 Firefox 的行为相同。

编辑:另请参阅https://stackoverflow.com/a/2635726/1641070为什么 IE 核对 window.ABC 变量?

于 2012-10-30T16:21:58.367 回答