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