1. 程式人生 > >為什麽不能在 body 標簽的前面的 script 標簽中定義 JS 全局變量?

為什麽不能在 body 標簽的前面的 script 標簽中定義 JS 全局變量?

定義 click 頁面 解決 全局 onclick document type script

<!DOCTYPE html>
<!--
    為什麽不能在 body 標簽的前面的 script 標簽中定義 JS 全局變量?
    
    在全局環境下的代碼就是在頁面加載階段從上到下一邊加載一邊執行的
    這時處於代碼下面的頁面元素還沒有加載完,訪問不到。
        
    解決方法: 在 body 標簽的後面 script 標簽中定義 JS 全局變量
-->
<html>
    <head>
        <script>
            
            var  id =  document.getElementById("test");
            alert(id); //獲取不到 div 的對象
            
            function  testDemo(){
                
                var  id2 =  document.getElementById("test");
                alert(id2); //可以獲取到 div 對象
            }
            
        </script>
    </head>
    
    <body>
            <div id="test">test</div>
            <hr boder="solid red 3px"/>
            <button onclick="testDemo()">測試按鈕</button>
    </body>
</html>
<script>
        
        var  id =  document.getElementById("test");
        alert(id); //獲取不到 div 的對象
    
</script>

為什麽不能在 body 標簽的前面的 script 標簽中定義 JS 全局變量?