javascript之作用域

javascript作用域是由最裏層向外層查找直到window,如果到達window還沒查找到則爲undefined.下面看幾個例子:

eg1:

var a = 1;
function t1(){
    var b = 2;
    function t2(){
        var c =3;
        alert(a+b+c);
    }
    t2();
}
t1();// 6
/*
分析:
t2函數內找不到a、b則向上t1函數裏面找,t1裏面找到b,繼續向window中尋找a
*/
eg2:

function t1(){
    console.log(str1);// global
    console.log(str2);// 報錯 str2 is not defined
    str2 = 'local';
}
t1();

eg3:

var str1 = 'global';
function t1(){
    console.log(str1);// global
    console.log(str2);// undefined
    var str2 = 'local';
}
t1();

eg2和eg3的結果僅僅作用域是解釋不了的,還需要詞法分析,請看javascript詞法分析

發佈了28 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章