首页 > 代码库 > 作用域-基础知识总结------彭记(07)

作用域-基础知识总结------彭记(07)

作用域

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)