1.go:global object 全域性上下文
說白了,其實go就是window。
var a = 1;可以看到列印結果是1。那麼它的演變過程可以理解為function a()
console.log(a)
go: -> 1總結一下:}
找變數找函式宣告
執行測試一下:
console.log(a,b)結果是什麼?function a()
var b = function(){}
按照之前說的go預編譯順序分析一下:
go:執行結果為 a -> function(){} b:undefined}
2.接下來說一下ao:activation object 活躍物件/函式上下文
看個例子:
function test(a)執行函式test(2),列印結果會是什麼?先不要著急,後面會輸出日誌,自己先試一下。console.log(a);
var b = function(){}
console.log(b);
function d(){}
}test(2);
分析一下,看下預編譯步驟
首先尋找函式的形參和變數宣告
把實參的引數值賦值給形參
尋找函式宣告,賦值函式體
執行函式
static全域性變數 全域性變數
1 全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是...
全域性變數和靜態全域性變數
全域性變數和區域性變數是從變數的作用域的角度劃分。靜態變數和動態變數是從變數的記憶體分配的角度劃分。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同,區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原...
c 全域性變數 靜態全域性變數
全域性變數是靜態儲存方式,靜態全域性變數也是靜態儲存方式,這兩者在儲存方式上並無不同。區別 雖在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,靜態全域性變數在各個原始檔中都是有效的。靜態區域性變數則限制了其作用域,只在定義該變數的原始檔內有效,在同一源程式的其它原始檔中不能...