頁面中多個script塊之間方法與變數共享問題

kxwce發表於2018-11-26

JS是按照程式碼塊來進行編譯和執行的,程式碼塊間相互獨立,但變數和方法共享,按順序執行。

如:

<script type=`text/javascript`>
    var m = 0,n = 1,i = 2,j;
    alert(q);//沒有輸出,因為q是下一個script的全域性變數,script塊按順序執行,將兩個script塊交換位置可能會出錯
    function num(){
        i = 3;
        var p = 4;//p在方法內為區域性變數
        alert(`ok`);
    }
</script>
<script type=`text/javascript`>
    var q = 5;
    alert(m);//輸出0
    num();//輸出ok
    alert(i);//此處為全域性變數,但值已經被修改,輸出3
    alert(j);//輸出undefined,因為沒有為j賦值
    alert(p);//沒有輸出,因為p是上一個script的區域性變數
</script>

 

相關文章