Javascript是一種單執行緒(single-thread)的程式語言,一次只能做一件事,同一時間一次只能執行一段程式碼。
stack(堆疊): 程式中要執行的程式碼堆疊的地方,並以一次一個的頻率執行程式碼。
callback/task queue(工作佇列): 存放callback function的地方,等著被丟進stack執行。
heap(堆積): 在程式中宣告、定義變數及函式等的記憶體位置。
blocking(阻塞): 阻塞並無明確定義,大致可解釋為call stack最上方的任務尚未完成,造成塞車,而瀏覽器無法執行後續的動作。
event loop(事件循環): 會持續檢查stack內是否已經為空,如果已經空了,就把工作佇列中的工作抓到stack中,讓其執行。
runtime(執行環境): 如果javascript在瀏覽器上面運作,那瀏覽器即為javascript的runtime。
asychronous(非同步): 好幾件事同時開始執行,但結束的時間點不同。
concurrency(並發性): 程式會把工作拆解成數個子任務,分派給不同的執行緒(thread)同時進行子任務。