Why am I getting "Uncaught TypeError: Cannot read property 'body' of undefined"?

Why am I getting "Uncaught TypeError: Cannot read property 'body' of undefined"?

我的JS文件很简单

jQuery(function ( $ ) {
    // make elements with class 'same-height-as-width' have the self-explanatory property
    $(window).resize(function ( ) {
        $('.same-height-as-width').each( function ( ) {
            var thisElement = $(this);
            thisElement.height(thisElement.width());        
        });
    });

    window.onscroll = function () {

        var body = document.body; //IE 'quirks'
        var document = document.documentElement; //IE with doctype
        document = (document.clientHeight) ? document : body;

        if (document.scrollTop == 0) {
            alert("top");
        }
    };

});

给我带来麻烦的是 var body = document.body; //IE 'quirks'。错误

Uncaught TypeError: Cannot read property 'body' of undefined

每次滚动时都会打印到控制台。然而,当我在控制台中键入 document.body 时,控制台中显示的元素不是 undefined。我也试过将 window.onscroll 移到 jQuery(function ( $ ) 之外,但我得到了同样的错误。

那是因为 JavaScript variable hoisting,但不要让您感到困惑,不要使用 "document" 作为变量的名称