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

xiaoxiao2021-02-28  8

读完此篇文章将占用您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;

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

***希望对你有帮助。***
转载请注明原文地址: https://www.6miu.com/read-2050239.html

最新回复(0)