1. 程式人生 > >JS(作用域和閉包)

JS(作用域和閉包)

win argument cal bsp log AR 點擊 表達式 一個

1.對變量提升的理解

2.說明 this 幾種不同的使用場景

3.創建10個 <a>標簽,點擊的時候彈出來對應的序號

4.如何理解作用域

5.實際開發中閉包的應用

一、執行上下文

技術分享圖片

1.範圍:一段<script>或者一個函數 (都會生成一個執行上下文

2.全局:變量定義、函數聲明 (一段<script>先將變量定義和函數聲明拿出來)

3.函數:變量定義、函數聲明、this、arguments (一個函數在執行之前姜變量定義、函數聲明、this、arguments 拿出來)

函數聲明:

技術分享圖片

將整個函數拿出來,故 function fn(name) 輸出為 ‘zhangsan‘ 20

函數表達式:

技術分享圖片

先將變量定義拿出來,即將 a 拿出來,故console.log(a) 輸出 undefined(代替)

(不推薦這樣寫,應將 定義 var a = 100 放在前面)

二、this

this 要在執行時(函數後面有())才能確認值,定義時無法確認

技術分享圖片

常見用法

1.作為構造函數執行

2.作為對象屬性執行

3.作為普通函數執行(this === window)

4.call apply bind

三、作用域

四、作用域鏈

五、閉包

JS(作用域和閉包)