[js]js代码执行顺序/全局&私有变量/作用域链/闭包

js代码执行顺序/全局&私有变量/作用域链

<script>
    /*
    浏览器提供全局作用域(js执行环境)(栈内存)
    --> 1,预解释(仅带var的可以): 声明+定义
             1.普通变量:    仅声明
             2.函数的预解释  声明+定义

    --> 2,代码从上到下执行
       函数的执行
        - 1.形参赋值
        - 2.进行私有作用域预解释
        - 3.私有作用域代码从上到下执行


    全局变量: 在全局环境中(预解释产生的变量)
    私有变量:
        - 1. 在私有作用域重声明的变量
        - 2. 函数的形参

    作用域链:  私有作用域 (无变量)-->往上查找--> 直到windows为止.
    闭包: 函数执行时候,形成私有作用域,保护里面的私有变量不受外界干扰.
    */
    console.log(total);
    var total = 0;

    function fn(num1, num2) {
        console.log(total);
        total = num1 + num2;
        console.log(total);
    }

    fn(100, 200);
    console.log(total);
</script>

posted @ 2018-02-05 11:25  mmaotai  阅读(196)  评论(0编辑  收藏  举报