六角學院 JS 核心筆記 (八)【執行環境與作用域】- 記憶體存放與釋放
記憶體的管理,在早期是軟體工程師一個很重要很困難的課題。現代大部分高階語言中多虧了回收機制 (Garbage Collection),能讓軟體工程師的負擔稍微少了一點。
記憶體的管理,在早期是軟體工程師一個很重要很困難的課題。現代大部分高階語言中多虧了回收機制 (Garbage Collection),能讓軟體工程師的負擔稍微少了一點。
not defined 和 undefined 是 JavaScript 中很基礎卻也很重要的觀念。
Hexo 有許多協作開發者,他們將自己的主題樣式放置在官網上,到目前為止,已經有 277 個主題可供使用者下載。
核心就是封裝在積體電路 (IC) 中的處理器。而多核心就是多核處理器 (Multi-core processor),是物理上實體存在的。例如:2 核心就是有 2 個獨立實體處理器,可以分別獨立地執行程式或執行緒 (thread) 指令,利用平行計算的能力加快程式的執行速度。
Hoisting 基本概念就是:將非函式和函式宣告的動作,抽象地提升到程式碼最前面的動作,讓程式進入執行階段前,就預先完成宣告。
提升 (Hoisting) 在 JavaScript 中,對於變數和函式的宣告和運行順序是很重要的觀念。但是在 ECMAScript 中其實沒有這個專有名詞,「提升」只是一個大家的共識、共同的說法,它的相關概念是寫在 Execution Contexts 中。其實我剛學 JavaScript 時,覺得它真的很奇怪,為什麼不要像其他程式一樣,好好在最前面宣告完就沒事了呢?(摔
當函式的本身沒有宣告該變數時,函式就會一層一層向外層 / 上層來做尋找,而這一連串就是範圍鍊。
語法作用域 (Lexical scope) 的類別則是在探討有相同的變數名稱時,該變數需要參照哪一個值,也就是變數和值之間的聯繫 (binding)。
在直譯的過程中,JavaScript 引擎、編譯器和範疇會互相溝通以完成工作。