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

时间:2021-05-26

预解析:在当前作用域下,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);

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章