JS執行三部曲

2021-08-16 16:33:05 字數 1112 閱讀 7812

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數學系列。當然,這些數學庫使用上比較簡單,如果你對其數學原理不...