作用域-基礎知識總結------彭記(07)
阿新 • • 發佈:2017-08-13
() 基礎知識 如果 成了 size ron 查找 搜索 log
作用域
1.變量起作用的範圍
-一個變量的作用域就是從這個變量定義開始到這個變量所在的{}結束
2.在js中,只有函數可以創建作用域
-沒有塊級作用域--意味著在if或者for中定義的變量在它們的外部也能夠訪問
-變量獲取遵守變量搜索原則
-不關註什麽時候調用,只關註在什麽位置創建
3.詞法作用域(靜態作用域):
-根據代碼的書寫結構去確定變量的作用範圍,與調用沒有關系。意味著在使用一個變量的時候,首先在自己的作用域中查找,如果沒有就去上一級作用域中查找
例:var age =20;
function test(){
cosole.log(age);
}
function test2(){
var age=40;
test();
}
test2();//20
函數的作用域鏈:
1.在函數中可以嵌套函數,這樣就形成了作用域中嵌套另一作用域,就形成了作用域鏈
2.作用域中變量的搜索原則:
a)首先在當前使用變量的作用域中查找,如果找到就使用,否則查找上一級作用域
b)查找上一級作用域,如果找到就使用,否則再查找上一級作用域
c)如果沒有,就一直沿著作用域往上找,直到找到全局的作用域為止
3.訪問規則:內層作用域可以訪問外層作用域的變量,外層作用域不能直接訪問內層作用域中的變量
例:var num;
function f1(){
var num;
function f2(){
console.log(num);//123
}
num=123;
f2();
}
num=234;
f1();
作用域-基礎知識總結------彭記(07)