JS的预解析

本文介绍了JavaScript的预解析概念,包括变量预解析和函数预解析。预解析过程分为两个阶段:变量和函数声明被提升到当前作用域的最前面,但不包括赋值或函数调用。特别地,变量提升只提升声明,不提升赋值,而函数声明会被完全提升。文中通过案例分析了预解析的一些特殊行为,如未声明直接赋值会产生全局变量,以及函数参数被视为局部变量。
摘要由CSDN通过智能技术生成

今天学习了JS预解析–挺有意思–小傻猫就浅记一下

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

这是学习视屏分析简记,更详细我就没查了。
主要案例分析如下:

<script>
  //--------------------------------------------------

        //eg 1 预解析案例---->仔细分析-----结果是:undefined
        var num = num;
        fun();
        function fun() {
   
            console.log(num);
            var num=20
        }
        //相当于执行如下
       var num;                                      //   1、
       function fun() {
                                 //   2、
            console.log(num);
            var num=20
        }
        num=10;                                      //   3、
        fun();                                       //   4、

        var num                                      //   5、
        function fun(){
   
            var num;
            console.log(num);   //此处的num  是当前函数作用域内的num ,运行此处只定义还未赋值
            num=20;
        }
        num =10;
        fun();

        //-------------------------------------------------------

        //eg 2  预解析案
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值