iT邦幫忙

2021 iThome 鐵人賽

DAY 28
0

什麼是作用域

  • 靜態作用域:在語法解析時就確定作用域且不會再改變,JavaScript 屬於此類,又稱作語法作用域(lexical scope)
  • 動態作用域:在函式使用的時候才會決定

JS 中每一個 function 的作用域是獨立的

如果在作用域內沒有需要的變數時,則會向外查找,找不到則會出錯
示意圖如下:

執行環境

  • 網頁一打開就會產生執行環境
  • 執行每一個函式時,在執行堆疊會依照呼叫的函式的順序,堆疊在全域的執行環境上,並且執行完成後會依照呼叫的順序一層一層離開,並回到全域的執行環境上。

範圍鏈

  • 指的是當函式本身沒有指定的變數的時候,就會往外尋找
  • 函式在撰寫完成時會決定其範圍鏈

簡單範例:

let food ='巧克力司康';
function eatDessert() {
  console.log('吃' + food);  // 結果為吃巧克力司康
}
eatDessert();


參考資料及學習資源

  • 六角學院 - JavaScript 核心篇
  • 0 陷阱!0 誤解!8 天重新認識 JavaScript!

本日小結

這是我的學習紀錄,我們下次見囉!


上一篇
[ Day 27 ] - 樣板字面值(Template literals)
下一篇
[ Day 29 ] - this
系列文
初心者解任務啦!JS 的 30 道任務30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言