深入了解:Hoisting 和「執行環境、詞彙環境」的關係
Hoisting 基本概念就是:將非函式和函式宣告的動作,抽象地提升到程式碼最前面的動作,讓程式進入執行階段前,就預先完成宣告。
Hoisting 基本概念就是:將非函式和函式宣告的動作,抽象地提升到程式碼最前面的動作,讓程式進入執行階段前,就預先完成宣告。
提升 (Hoisting) 在 JavaScript 中,對於變數和函式的宣告和運行順序是很重要的觀念。但是在 ECMAScript 中其實沒有這個專有名詞,「提升」只是一個大家的共識、共同的說法,它的相關概念是寫在 Execution Contexts 中。其實我剛學 JavaScript 時,覺得它真的很奇怪,為什麼不要像其他程式一樣,好好在最前面宣告完就沒事了呢?(摔
當函式的本身沒有宣告該變數時,函式就會一層一層向外層 / 上層來做尋找,而這一連串就是範圍鍊。
語法作用域 (Lexical scope) 的類別則是在探討有相同的變數名稱時,該變數需要參照哪一個值,也就是變數和值之間的聯繫 (binding)。
在直譯的過程中,JavaScript 引擎、編譯器和範疇會互相溝通以完成工作。
我們一般寫出來的程式碼又稱做原始碼,屬於高階式 (類人類) 語言,這種語言電腦是看不懂的,電腦只懂 0 和 1,因此需要經過中間用來翻譯的程式,將原始碼翻譯成機器碼。翻譯程式可以依照不同類型稱為編譯器或直譯器。
電腦科學中小數點如果採用 IEEE754 二進制浮點運算都有同樣的狀況,會出現精度丟失的問題。
Controller 傳資料給 View 有四種方法:ViewBag、ViewData、TempData、ViewModel。