js執行三部曲
1.語法分析
先全部掃一遍 看有沒有語法錯誤.
2.預編譯(執行前一刻)
函式宣告整體提公升
變數 宣告提公升
3.解釋執行
(解釋一行執行一行)
預編譯執行四部曲
函式中
1.建立ao物件 (activation object (執行期上下文))
2. 找形參和變數宣告,將變數和形參名作為ao屬性名,值為undefined
3.將實參值和形參統一
4.在函式體裡面找函式宣告,值賦予函式體
全域性中
1. 生成乙個叫go 物件 global object
(window就是全域性)
例:
/*首先執行前會進行全域性預編譯:
先把全域性的變數宣告找出來值為undefined 和函式宣告 值賦予函式體,提公升到最上端
go} 然後開始執行*/
a = 100; //1.執行到這裡 go 提公升 所以忽略 然後下一步
function
e(){} //5.提公升 忽略
arguments[0] = 2; //6.實參值改變 形參也改變 ao
var c; //9.提公升 忽略
a = 10; // 10. ao
var a; //3. 提公升 忽略 下一步
//4.函式執行前進行函式預編譯
/*4.1找形參和變數宣告,將變數和形參名作為ao屬性名,值為undefine
ao4.2將實參值和形參統一
ao4.3在函式體裡面找函式宣告,值賦予函式體
ao;b;undefined;
c:undefined;
a:undefined;}*/
demo(1);
console.log(a); //100 //16. 看1. go{a:100; 輸出 100
console.log(f); //123 //17.看 13. go{f:123; 輸出 123
script>
人生三部曲
人生三部曲 童年沙丁魚罐頭似的公共汽車在曬的發燙的柏油路上緩慢地爬著。我 瘦瘦小小的個子在擁擠的人群中喘不過氣來。還要多久呀?人們煩躁而沉悶的氣氛充斥著整個車廂。忽然,我看見一位打扮入時的西裝人士,正悄悄地把手伸入一位老人的口袋。我第一反應就是有小偷!於是大聲脫口而出,一車人都回頭驚悸地看著我,西裝...
Jmock使用三部曲
import org.jmock.mockery import org.jmock.expectations class publishertest extends testcase execute publisher.publish message verify assert.assert.注意 ...
SoftwareRender三部曲 前言
這個系列主要是介紹如何簡單製作乙個softwarerender,後面會分三篇文章來完成這個系列。在看這個系列之前最好先閱讀之前 遊戲開發3d數學筆記 在這個工程中的所需要的一些數學庫 vector matrix mesh等 都 於之前3d數學系列。當然,這些數學庫使用上比較簡單,如果你對其數學原理不...