欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2020-12-18

程序员文章站 2022-03-18 17:09:26
...

JS预解析详解

js预解析又名为变量提升,在当前作用域中,JavaScript代码执行之前,浏览器首先会默认的把所有带var和function声明的变量进行提前的声明或者定义。

// 1问
        // console.log(num);

// 2问
        console.log(num); //undefined   坑1
        var num = 10;
        // 相当于执行了以下代码
        // var num;
        // console.log(num);
        // var num = 10;
// 3问  (函数提升)
        fn();
        

        function fn() {
            console.log(11);
        }

// 4问
        fun(); //报错 坑2
        var fun = function() {
                console.log(22);

            }
            // 函数表达式 调用 必须写在函数表达式的下面
            // 相当于执行了以下代码
            // var fun;
            // fun();
            // fun = function() {
            //     console.log(22);
            // }



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

推荐阅读