1. 我们js引擎运行js 分为两步:  预解析  代码执行
  (1). 预解析 js引擎会把js 里面所有的 var  还有 function 提升到当前作用域的最前面
  (2). 代码执行  按照代码书写的顺序从上往下执行
2. 预解析分为 变量预解析(变量提升) 和 函数预解析(函数提升)
 (1) 变量提升 就是把所有的变量声明提升到当前的作用域最前面  不提升赋值操作
 (2) 函数提升 就是把所有的函数声明提升到当前作用域的最前面  不调用函数

        f1();
        console.log(c);
        console.log(b);
        console.log(a);

        function f1() {
            var a = b = c = 9;
            console.log(a);
            console.log(b);
            console.log(c);
        }
        // 以下代码
        // function f1() {
        //     var a;
        //     a = b = c = 9;
        //     // 相当于 var  a  = 9; b = 9; c = 9; b 和 c 直接赋值 没有var 声明 当 全局变量看
        //     // 集体声明  var a = 9, b = 9, c = 9;
        //     console.log(a);
        //     console.log(b);
        //     console.log(c);
        // }
        // f1();
        // console.log(c);
        // console.log(b);
        // console.log(a);

 

 posted on 2020-03-16 19:39  湖人分位科比  阅读(116)  评论(0)    收藏  举报