JavaScript

超轻量级php框架startmvc

JavaScript 预解析的4种实现方法解析

更新时间:2020-09-10 17:54:02 作者:startmvc
预解析:在当前作用域下,js运行之前,会把带有var和function关键字声明的变量先声明,并在

预解析:在当前作用域下,js运行之前,会把带有var和function关键字声明的变量先声明,并在内存中安排好。然后从上至下解析js语句。而且function的声明优先于var声明。

不多说,,直接上代码

正规写法:


var num=10;
 fun();
function fun(){
 console.log(num);//undefined
var num=20; }

预解析里:先将变量和函数提前,如下:


var num;
 function fun(){
 var num;
 console.log(num);//undefined
 num=20; 
 }
 num=10;
 fun();

第二种


var num=10;
 function dn(){
 console.log(num);//undefined
 var num=20;
 console.log(num);//20
 }
 dn(); 
 //相当于以下代码
 var num;
 function dn(){
 var num;
 console.log(num);
 num =20;
 console.log(num );
 }
 num=10;
 dn();

第三种


var a =18;
 ss();
 function ss(){
 var b=9;
 console.log(a);//undefined
 console.log(b);//9
 var a='123';
 } 
 //相当于以下代码 
 var a;
 function ss(){
 var b;
 var a;
 b=9;
 
 console.log(a);
 console.log(b);
 a='123';
 }
 a=18;
 ss();

第四种


aa();
 console.log(c1);//9
 console.log(b1);//9
 console.log(a1);//报错 
 function aa(){
 var a1=b1=c1=9;
 console.log(a1);//9
 console.log(b1);//9
 console.log(c1);//9
 } 
 //相当于
 function aa(){
 var a1=b1=c1=9;//相当于 var a=9;b=9,c=9
 var a1;
 a1=b1=c1=9;
 
 console.log(a1);
 console.log(b1);
 console.log(c1)
 }
 aa();
 console.log(c1);
 console.log(b1);
 console.log(a1);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

javascript 预解析 实现方法