預解析:在當前作用域下,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);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答