作用域鏈3

1.函數內(函數內的函數除外,嵌套的函數訪問不到),
定義的變量在整個函數內部都有效

function test() {
var t = 0;
//在for的條件裏定義變量,這個變更的作用域鏈對象是這個函數
//因此在整個的函數裏它是有效的
for (var i = 0; i < 5; i++) {
// 默認是全局變量,當 i 等於5時候條件不滿足;
t += i;
}
alert(i);
}
// test(); 
window.onload = test;

2.if和 for 不算塊級作用域,外部可以訪問裏面的變量;
function纔是塊級作用域,不能直接訪問裏面的變量

if (true) {
//在塊中定義了一個變量,它的作用域鏈的第一個對象就是全局對象window
var bbb = 0;
}
//tmp的作用域鏈的第一個對象就是全局對象window,而上面又有全局對象中相關的var語句,因此輸出0,就是直接獲取的值
alert(bbb); 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章