克服JS奇怪的部分_執行環境:程式執行

Huang Pei
2 min readApr 24, 2019

--

執行環境

本筆記出自:JavaScript 全攻略:克服 JS 的奇怪部分

前篇文提到的是創造環境,而此處要講的是執行時的情況

在JavaScript跑程式碼時:

第1階段創造:JS設定變數和函數到記憶體中

第2階段執行:創造階段已經設定好所有的東西,現在執行你已經寫好的程式碼逐行編譯、轉換成電腦懂的東西。

創造:跑到2宣告了a,a已存在於記憶體中,系統先給了預設值defined,因為還沒有開始執行,所以不知道a的值,要執行時才會知道。執行:跑到1時-預設a值是undefined
跑到2時-將123填入a取代undefined,現在a是123
跑到3時-將a=123代入
1. console.log(a); // undefined 2. var a = 123; 3. console.log(a); //123
_____
就是個普通的例子別理它function b() {
console.log(“hello”);} //hello,
b();
_____
一般我們知道的not defined,從頭到尾沒被賦值,記憶體中根本不存在。console.log(c) // not defined

簡單而言,創造階段時依有沒有被宣告,決定是undefined還是not defined,執行階段將值填入undefined。

console.log(d);//undefined
var d;
console.log(d);//undefined
*無論var d寫在哪,宣告過後未賦值的話console.log都是undefined

--

--

Huang Pei
Huang Pei

Written by Huang Pei

記錄用倉庫,歡迎指正。菜鳥前端,最菜的那種(超能力少女です)。

No responses yet