[JavaScript-08]执行流和执行环境 作用域

1. 执行流

// 执行流
var a = 1;                  // 1
var b = 2;                  // 2
function fn(x) {
    var a = 10;             // 4
    function bar(x) {       // 6        // 11
        var a = 100;        // 7 a=100  // 12 a=100
        b = x + a;          // 8 b=120  // 13 b=300
        return b;           // 9        // 14
    }
    bar(20);                // 5
    // bar(20)执行环境 x:20,a:undifined,arguments:[0],this:window
    bar(200);               //10
}
fn(0);                      // 3
// fn(0)执行环境:变量对象
// x:0,a:undefined,bar:function,arguments:[0],this:window

2. arguments

// arguments获取的传参的值
function fff()
{
    console.log(arguments);
}

fff("aa",22,'aaa')
fff();

// 作用域
/*

  1. 在js中,除了全局作用域,每个函数都会创造自己的作用域
  2. 作用域在函数定义时就已经确定,跟函数调用无关
  3. 通过作用域可查找作用域范围内的变量和函数有哪些,却不知道变量的值,作用域为静态
  4. 对于函数来说,执行环境在函数调用时确定的
  5. 执行环境包含作用域所有的变量和函数值
  6. 在同一作用域下,不同的调用会产生不通的执行环境,从而产生不同的变量和值
    */
posted @ 2022-11-10 17:07  LeoShi2020  阅读(34)  评论(0)    收藏  举报