預(yù)解析:在當(dāng)前作用域下,js運(yùn)行之前,會(huì)把帶有var和function關(guān)鍵字聲明的變量先聲明,并在內(nèi)存中安排好。然后從上至下解析js語(yǔ)句。而且function的聲明優(yōu)先于var聲明。
不多說(shuō),,直接上代碼
正規(guī)寫法:
var num=10; fun();function fun(){ console.log(num);//undefinedvar num=20; }預(yù)解析里:先將變量和函數(shù)提前,如下:
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(); //相當(dāng)于以下代碼 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'; } //相當(dāng)于以下代碼 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);//報(bào)錯(cuò) function aa(){ var a1=b1=c1=9; console.log(a1);//9 console.log(b1);//9 console.log(c1);//9 } //相當(dāng)于 function aa(){ var a1=b1=c1=9;//相當(dāng)于 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);以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持錯(cuò)新站長(zhǎng)站。
新聞熱點(diǎn)
疑難解答
圖片精選