先看這麼一句話:
「在js預編譯期,僅僅是對函式的名稱、函式內部的各種識別符號進行檢索,並建立索引」
根據上述,我們看看示例:
示例1:
function test6_2() 預編譯時,被函式a替換,疑問:在函式a後面繼續宣告有a變數,不過這個變數似乎優先順序不夠?
alert(a);
var a = "abc";
function a()
var a = 1.11111;
alert(a); // 1.11111
示例3:
function test6_4() 預編譯時,被函式f替換,疑問:在函式f後面繼續宣告有識別符號f,不過這個變數似乎優先順序不夠?
alert(f);
function f()
var f = function() ;
示例4:
function test6() ;
f(); //3
function f() ;
f(); //6
備註:繼續學習,後期來解答這個疑問!
JS預編譯 函式預編譯和全域性預編譯
預編譯發生在函式執行前一步 建立ao物件 執行期上下文 找形參和變數宣告,將變數和形參名作為ao 屬性名,值為undefined 將實參值和形參統一 在函式體裡面找函式宣告,值賦予函式體 結果 預編譯過程 函式馬上要執行,但是還沒執行 首先建立ao物件,也就是函式它產生的儲存空間庫 ao,b und...
JS 函式預編譯
1 語法分析 2 預編譯 3 解釋執行 預編譯四部曲 1.函式在執行的瞬間,生成乙個執行期上下文 active object 簡稱ao 2.分析引數 2.1 函式接收形式引數,新增到ao的屬性,並且這個時候值為undefine,例如ao.age undefined 2.2 接收實參,新增到ao的屬性...
js的預編譯
預編譯發生在函式執行前一刻 預編譯執行的步驟 1建立執行期上下文,activation object 即ao 2找形參和變數宣告,將形參和變數宣告做為ao的屬性名,尚未賦值,值為 undefined 3將形參和實參相統一,即把實參的值傳到形參裡面去 4在函式體裡面找函式宣告,賦值函式體 functi...