作用域鏈:JavaScript需要查詢一個變量x時,首先會查找作用域鏈的第一個對象,如果以第一個對象沒有定義x變量,JavaScript會繼續(xù)查找有沒有定義x變量,如果第二個對象沒有定義則會繼續(xù)查找,以此類推。
函數(shù)體內(nèi)部,局部變量的優(yōu)先級比同名的全局變量高。
JavaScript沒有塊級作用域。
函數(shù)中聲明的變量在整個函數(shù)中都有定義。下面這個例子
var x = 1;
function rain(){
alert(x);// undefined
var x = "rain_man";
alert(x);// rain_man
}
// 原因是在rain函數(shù)體內(nèi)重新定義了局部變量x,
// 因此在rain函數(shù)體內(nèi)隱藏了同名的全局變量,
// 故,第一個是 undefined