作用域
  1. 作用域是指代码中定义变量的区域。
  2. 作用域规定了如何查找变量,也就是确定当前代码执行对变量的访问权限
  3. JavaScript采用的是词法作用域,也就是静态作用域。
静态作用域和动态作用域
var value = 1
function foo(){
    console.log(value)  // 1
}
function bar(){
    var value = 2
    foo()
}
bar()

静态作用域
    执行foo()函数,先从foo函数内部查找是否有value变量,如果没有则去上一层作用域去寻找,也就是value=1,所以结果打印1
动态作用域
  1. bash就是动态作用域
value=1
function foo () {
    echo $value;
}
function bar () {
    local value=2;  // 2
    foo;
}
bar

动态作用域
    执行foo()函数,先从foo函数内部寻找是否有value变量,如果没有,则去调用函数的作用域去寻找,也就是bar函数内部寻找value变量,结果打印2
12-24 17:05