JavaScript 预解析的4种实现方法解析
预解析:在当前作用域下,js运行之前,会把带有var和function关键字声明的变量先声明,并在内存中安排好。然后从上至下解析js语句。而且function的声明优先于var声明。
不多说,,直接上代码
正规写法:
varnum=10; fun(); functionfun(){ console.log(num);//undefined varnum=20;}
预解析里:先将变量和函数提前,如下:
varnum; functionfun(){ varnum; console.log(num);//undefined num=20; } num=10; fun();
第二种
varnum=10; functiondn(){ console.log(num);//undefined varnum=20; console.log(num);//20 } dn(); //相当于以下代码 varnum; functiondn(){ varnum; console.log(num); num=20; console.log(num); } num=10; dn();
第三种
vara=18; ss(); functionss(){ varb=9; console.log(a);//undefined console.log(b);//9 vara='123'; } //相当于以下代码 vara; functionss(){ varb; vara; 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);//报错 functionaa(){ vara1=b1=c1=9; console.log(a1);//9 console.log(b1);//9 console.log(c1);//9 } //相当于 functionaa(){ vara1=b1=c1=9;//相当于vara=9;b=9,c=9 vara1; a1=b1=c1=9; console.log(a1); console.log(b1); console.log(c1) } aa(); console.log(c1); console.log(b1); console.log(a1);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。