1. 程式人生 > >JS---預解釋

JS---預解釋

預解釋就是js在執行程式碼之前先將 var的變數宣告   將function函式定義  這樣執行程式碼  能直接呼叫

棧記憶體用來提供js執行的環境

堆記憶體用來儲存引用資料型別的值

window是全域性變數也是瀏覽器物件

function函式儲存是將function體內的程式碼以字串形式儲存  然後再指向函式名

基本資料型別     string number boolean null undefined   五種型別  操作值

引用資料型別     {}物件object  []陣列 arr   //正則   操作記憶體地址

                           function

 function裡中也會先進行預解釋

js中 在全域性下這麼寫的話 ==》  var num1 和 num ,var num1不僅是個全域性變數也是window的屬性

num 僅僅是全域性的屬性

<script>

var a = 100

function fn(){

     console.log(a)   ==>10    先進行的是預解釋  將var a = 10使區域性變數

    var a = 10

}

console.log(a)  ===> 100  全域性

</script>

<script>

var a = 100   全域性

function fn(){

     console.log(a)   ==>100   函式裡沒有a的區域性變數 順延向上級作用域尋找  找到a

     a = 10     這行的a是全域性變數  修改了 全域性下的a

}

console.log(a)  ===> 10

</script>

<script>

function fn(){

     console.log(a)    ===>報錯

     a = 10

}

console.log(a)  ===>   不執行

</script>