這篇文章主要講解了JS變量提升的使用方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
為集安等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及集安網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、集安網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
該篇介紹什么是變量提升,寫(xiě)給像我一樣的JS新手看的
簡(jiǎn)單來(lái)說(shuō)變量提升就是 JS會(huì)把var變量的聲明自動(dòng)提升到作用域的頂部,即使你不想這樣
一個(gè)例子: (局部變量與全局變量同名時(shí) , 局部變量覆蓋全局變量)
var a="全局變量"; function test() { document.writeln(a); var a="局部變量"; document.writeln(a); } test();
上例的兩個(gè)輸出結(jié)果是
undefined局部變量
第一個(gè)輸出并沒(méi)有輸出全局變量a而是undefined ,這就是變量提升導(dǎo)致的
上例等同與下例:
var a="全局變量"; function test() { var a; document.writeln(a); a="局部變量"; document.writeln(a); } test();
test函數(shù)內(nèi)即使局部變量a還沒(méi)定義,就已經(jīng)覆蓋了全局變量,可見(jiàn)其聲明已經(jīng)生效了,
即變量聲明會(huì)自動(dòng)提升到作用域的頂部, 即使該語(yǔ)句并沒(méi)執(zhí)行
如下例:
var x=100; var y=200; function test() { document.writeln(x); document.writeln(y); if(false) { var x=1; } return; var y=2; } test();
輸出結(jié)果:
undefinedundefined
等同如下形式:
var x=100; var y=200; function test() { var x,y; document.writeln(x); document.writeln(y); if(false) { x=1; } return; y=2; } test();
看完上述內(nèi)容,是不是對(duì)JS變量提升的使用方法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。