js 作用域
Javascript中的函數(shù)“在定義它們的作用域里運(yùn)行,而不是在執(zhí)行它們的作用域里運(yùn)行”。
var tt = 'aa';?
function test(){?
alert(tt);?
var tt = 'dd';?
alert(tt);?
}?
test();?
?
執(zhí)行結(jié)果:undefined和dd
?
test函數(shù)內(nèi)部的“var tt='dd'”將會致使“var tt='aa'”在test函數(shù)被調(diào)用時(shí)完全被隱藏。而且,tt是在第一個(gè)alert語句之后定義,所以在調(diào)用到第一個(gè)alert時(shí),tt是還沒有被賦值 的。這樣說可能會清楚一點(diǎn),即,在定義test函數(shù)時(shí),當(dāng)定義第一個(gè)alert(tt)時(shí),這里會記錄tt是作用域鏈中的一個(gè)變量但不會記錄它(tt)的 值,函數(shù)定義完畢后tt就添加到作用域里,所以第一個(gè)alert語句能夠找到該作用域里的tt(即,相當(dāng)于找到一個(gè)已經(jīng)在函數(shù)內(nèi)部聲明,但未被賦值的 tt)。
Javascript作用域鏈的特別之處在于函 數(shù)內(nèi)部能夠嵌套函數(shù)的定義.
轉(zhuǎn)載于:https://www.cnblogs.com/bfy-19/archive/2012/07/06/2579565.html
總結(jié)
- 上一篇: SLAM技术与市场杂谈
- 下一篇: proguard android 配置,