JavaScript中Function和var 的预解析(浅见)

读完此篇文章将占用您7分钟

JavaScript(下列简称JS)的预解析主要有函数参数,函数声明,var变量的声明。JS中语句执行步骤为:
1.自身函数参数
2.函数声明
3.var变量
4.其他语句的执行。
接下来,我们将具体看看代码的体现:

function a(){
            console.log(a);  // function
            function a(){};
            var a = 10;
            console.log(a); //10
            }
            a();
具体执行过程为:
    **1.执行函数参数-->无函数参数
    2.执行函数声明--> function a(){}
    3.执行var 声明 --> var a;与函数声明重名, 被忽略
    4.执行其他语句:
         console.log(a) -->function, 
         a = 10;  
         console.log(a) --> 10;**

2.

function b(){
console.log(a); // function
var a = 10;
function a(){};
console.log(a);  // 10 
}
b();
具体执行过程:
        ***1.执行函数参数-->无函数参数
        2.执行函数声明--> function a(){}
        3.执行var 声明 --> var a;与函数声明重名, 被忽略
        4.执行其他语句:    
             console.log(a) -->function
             a = 10;  
             console.log(a) --> 10;***

3.

        function d(){
            var a = 10;  
            console.log(a);  // 10
            function a(){};
            console.log(a);  // 10
        }
        d();
具体执行过程:
***1.执行函数参数-->无函数参数
    2.执行函数声明--> function a(){}
    3.执行var 声明 --> var a;与函数声明重名, 被忽略
    4.执行其他语句:
             a = 10;
             console.log(a) --> 10;  
            console.log(a) --> 10;***

4.

        (function(num){
            console.log(num); //100
            var num;
            console.log(num); //100
        })(100);
    具体执行过程:
        1.执行函数参数-->num = 100;
        2.执行函数声明--> 无
        3.执行var 声明 --> 与第一步重名, 被忽略
        4.执行其他语句。  
            console.log(a) -->100, 
            console.log(a) --> 100;

5.

        (function(num){
            console.log(num); // function
            var num;

            console.log(num); // function
            function num(){};
        })();
具体执行过程:
                1.执行函数参数-->num = undefined;
                2.执行函数声明--> function num(){} 覆盖了第一步
                3.执行var 声明 --> 与第二步重名, 被忽略
                4.执行其他语句。 
                 console.log(a) -->function, 
                 console.log(a) --> function;

大家在具体事例中可以通过上述的四步,进行对预解析的判断和理解,

***希望对你有帮助。***
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值