多個script標簽的作用域


當頁面中存在多個<script>標簽時,這時編譯器會將多個標簽處理成一個還是將多個分開處理呢,

看下面的代碼:

  <script>
        alert(a);
    </script>
    <script>
        var a = 123;
    </script>

這段代碼會報 Uncaught ReferenceError: a is not defined 的錯誤,而不是undefined,所以可以看出編譯器是按塊進行編譯的,

也就是說是按script標簽一塊一塊進行編譯的,在第一個塊中,並沒有聲明a變量,(這也證明了a變量並沒有被聲明提前,直到第二個script內部才被提前的。)所以才會彈出這個錯誤,而不是undefined。

在看一個例子:

 <script>
        var b = 111;
    </script>
    <script>
        alert(b);
    </script>

這段代碼的運行的結果是111,這說明了,雖然編譯不是同時進行的,但作用域始終還是一個,只是編譯器編譯的時候是一個塊一個塊從上向下進行編譯的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM