iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
0
Modern Web

教練我想學 JavaScript 系列 第 2

Day 2 語法解析器、執行環境與詞彙環境

如果想了解 JavaScript 的運作原理就必須先從3個部份說起:

  • 語法解析器(Syntax Parsers)
  • 執行環境(Execution Contexts)
  • 詞彙環境(Lexical Environments)

我們先來了解語法解析器,
JavaScript 無法直接告訴電腦該做什麼,
你寫的 JavaScript 程式碼,必須透過別人寫的程式(編譯器),
將 JavaScript 轉換成電腦看的懂的東西,
有時也和直譯器有關,編譯器或直譯器就是語法解析器,
它會一個字一個字逐行閱讀程式碼,
如果程式碼正確,語法解析器能讀懂我們的程式碼將其轉變成硬體指令,
才能讓電腦能夠依據你的程式碼行動

圖片來源:JavaScript 全攻略:克服 JS 的奇怪部分課程第 2 節講座 6 影片截圖

接著詞彙環境指的是程式碼所在的實際位置(寫在哪裡,周圍的環境是什麼),
我們直接來看個範例:

function add(a, b) {
  var sum = a + b;
  console.log(sum);
}

add(1, 2);

我們可以說變數 sum 詞彙上在函數裡面,
這就是程式碼中實際位置的意思,也就是詞彙環境,
特別強調在 JavaScript 中程式碼寫在哪裡影響非常大,
程式碼寫在哪會影響語法解析器解讀程式碼,
因為在創造執行環境(見下段說明)時會將變數與函數放到對應的記憶體空間裡,

最後執行環境則是幫助我們管理正在執行的程式,
我們有這麼多詞彙環境(多行程式碼),
我們怎麼知道正在執行哪行程式碼?
這就是執行環境處理的,
它除了執行我們的程式碼,另外還執行其他事情,

因此我們可以知道在 JavaScript 中三者扮演了分常重要的角色,互相合作,
接下來還會常常提到這3個名詞,以便我們了解 JavaScript 執行的過程。


上一篇
Day 1 前言
下一篇
Day 3 物件與全域物件
系列文
教練我想學 JavaScript 30

尚未有邦友留言

立即登入留言