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>