1. 程式人生 > >作用域-基礎知識總結------彭記(07)

作用域-基礎知識總結------彭記(07)

() 基礎知識 如果 成了 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)