ES5中,JavaScript只能通過函數(shù)來創(chuàng)建詞法作用域(不是動態(tài)作用域)詞法作用域就是代碼寫完,作用域就已經(jīng)構(gòu)建好了,如下面的案例一案例一varnum=10;functiontest(){console.log(num);}functiontest1(){varnum=100;test();}test1();//10案例二中該怎么解釋一定要執(zhí)行test()才不會報錯呢,不是應(yīng)該像案例一那樣在函數(shù)執(zhí)行前就已經(jīng)進(jìn)行了變量提升了嗎案例二console.log(a);functiontest(){a=1;}test();//必須執(zhí)行才能打印undefined否則報錯
js變量提升
紅顏莎娜
2019-05-25 16:52:42