首页 > 编程 > JavaScript > 正文

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

2019-11-19 10:54:29
字体:
来源:转载
供稿:网友

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

不多说,,直接上代码

正规写法:

var num=10;  fun();function fun(){  console.log(num);//undefinedvar 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);

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表