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

2番目はのscriptをオーバーライドするようqですwindow

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 が wi​​ndow.ABC 変数を核にする理由

于 2012-10-30T16:21:58.367 に答える