成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

變量提升

happyhuangjinjin / 1385人閱讀

摘要:變量提升的變量提升往往是由內(nèi)部變量和全局變量命名相同引起的。例二先打印出,然后打印本例中沒(méi)有,這是中的隱式全局變量,可以通過(guò)和進(jìn)行訪問(wèn)。因?yàn)樵诤瘮?shù)內(nèi)部,所以相當(dāng)于在函數(shù)內(nèi)部也定義了一個(gè)內(nèi)部變量。

變量提升:javascript的變量提升往往是由內(nèi)部變量和全局變量命名相同引起的。

例一:

 var v="Hello JS";
 (function(){
 alert(v);
 var v="I love JS";
 })()

alert出來(lái)的是undefined,因?yàn)樵诤瘮?shù)內(nèi)部定義一個(gè)和外部變量名稱相同的變量時(shí),變量的聲明會(huì)提升至第一句,賦值則不會(huì)變,所以上述語(yǔ)句其實(shí)是這樣執(zhí)行的:

var v="Hello JS";
(function(){
var v;
alert(v);
v="I love JS";
})()

本例先定義的是全局變量V,在函數(shù)里面又定義了內(nèi)部變量V,alert(v)執(zhí)行的時(shí)候,實(shí)際是先在函數(shù)內(nèi)創(chuàng)建變量v,然后執(zhí)行。

例二:

(function(){
a = 10;       
alert(window.a);   
var a = 5;
alert(a);          
})();

先打印出undefined,然后打印5
本例中a=10,沒(méi)有var,這是js中的隱式全局變量,可以通過(guò)this 和 window進(jìn)行訪問(wèn)。因?yàn)樵诤瘮?shù)內(nèi)部,所以相當(dāng)于在函數(shù)內(nèi)部也定義了一個(gè)內(nèi)部變量var a=10。內(nèi)部變量和全局變量重名,內(nèi)部變量把全局變量覆蓋,這樣內(nèi)部變量值是10,外部變量變成undefined,這樣通過(guò)window去訪問(wèn),便是undefined。
例二中的執(zhí)行順序相當(dāng)于:

var a = undefined;
(function(){
var a ;
a = 10 ;
alert(window.a);
a = 5;
alert(a);
})();

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/80466.html

相關(guān)文章

  • JS中的變量提升和函數(shù)提升

    摘要:什么是函數(shù)作用域下的變量提升和函數(shù)提升函數(shù)作用域中也存在變量提升和函數(shù)提升,這個(gè)和全局作用域下的情況是一模一樣的,就是把作用域想成是全局的就可以了。 在js中有一部分比較難以理解,卻也是在筆試過(guò)程中很容易考的,那就是變量提升和函數(shù)提升的問(wèn)題,這篇文章我會(huì)就變量提升和函數(shù)提升的問(wèn)題拓展一下有關(guān)js函數(shù)的知識(shí)點(diǎn),包括作用域的問(wèn)題,后面還會(huì)有一些小練習(xí)來(lái)判斷自己是否真的搞懂了。 作用域 在j...

    zhunjiee 評(píng)論0 收藏0
  • js變量提升與函數(shù)提升的機(jī)制

    摘要:所謂變量提升,提升就是為了事先聲明變量。變量提升之后,但其賦值還是留在原本的位置等運(yùn)行到了之后動(dòng)態(tài)賦值,而函數(shù)提升之后直接相當(dāng)于在代碼里抽空了。搞明白這個(gè)例子也就搞懂了作用域中變量和函數(shù)是怎么提升的。 問(wèn)題 showImg(https://segmentfault.com/img/bVJ614?w=222&h=165); 在這個(gè)例子中它應(yīng)該輸出什么?輸出的結(jié)果是6。 showImg(h...

    fasss 評(píng)論0 收藏0
  • 變量和函數(shù)聲明提升

    摘要:聲明提升變量和函數(shù)聲明提升發(fā)生在預(yù)編譯階段。上面代碼,函數(shù)內(nèi)相當(dāng)于對(duì)全局變量進(jìn)行賦值函數(shù)聲明提升創(chuàng)建函數(shù)有兩種方式,函數(shù)聲明和函數(shù)表達(dá)式,只有函數(shù)聲明存在提升。同時(shí)聲明變量和函數(shù)顯示的是,初步證明的優(yōu)先級(jí)高于。 聲明提升 變量和函數(shù)聲明提升發(fā)生在JavaScript預(yù)編譯階段。 所謂的聲明提升,就是說(shuō)變量或者函數(shù)在聲明的時(shí)候會(huì)被提前到當(dāng)前作用域的頂部,已經(jīng)處于可訪問(wèn)狀態(tài)。 變量聲明提升...

    FleyX 評(píng)論0 收藏0
  • Javascript中的變量提升、函數(shù)提升變量訪問(wèn)原則

    摘要:變量提升什么是變量提升在函數(shù)體內(nèi)聲明的變量,無(wú)論你是在函數(shù)的最底端還是中間聲明的,那么都會(huì)把該變量的聲明提升到函數(shù)的最頂端相當(dāng)于第一行,但是只是提升變量的聲明,不會(huì)賦值。 1、變量提升 什么是變量提升?在函數(shù)體內(nèi)聲明的變量,無(wú)論你是在函數(shù)的最底端還是中間聲明的,那么都會(huì)把該變量的聲明提升到函數(shù)的最頂端(相當(dāng)于第一行),但是只是提升變量的聲明,不會(huì)賦值。 var num = 10; fu...

    zhigoo 評(píng)論0 收藏0
  • javascript聲明提升

    摘要:但是碰到聲明提升,這種想法就會(huì)被打破。聲明一個(gè)函數(shù)進(jìn)行相應(yīng)的操作,會(huì)得到函數(shù)聲明提升的結(jié)果。由此可以發(fā)現(xiàn)變量和函數(shù)的聲明都會(huì)被提升在其他代碼的前面執(zhí)行。一個(gè)普通塊內(nèi)部的函數(shù)聲明通常會(huì)被提升到所在的作用域的頂部。的創(chuàng)建初始化和賦值均會(huì)被提升。 Javascript聲明提升 在分析聲明提升之前,我認(rèn)為有必要知道的兩點(diǎn): 一、引擎查詢變量的兩種方式 引擎查詢變量的方式可以分為L(zhǎng)HS和RHS兩...

    evin2016 評(píng)論0 收藏0
  • ES6 變量作用域與提升變量的生命周期詳解

    摘要:不同的是函數(shù)體并不會(huì)再被提升至函數(shù)作用域頭部,而僅會(huì)被提升到塊級(jí)作用域頭部避免全局變量在計(jì)算機(jī)編程中,全局變量指的是在所有作用域中都能訪問(wèn)的變量。 ES6 變量作用域與提升:變量的生命周期詳解從屬于筆者的現(xiàn)代 JavaScript 開(kāi)發(fā):語(yǔ)法基礎(chǔ)與實(shí)踐技巧系列文章。本文詳細(xì)討論了 JavaScript 中作用域、執(zhí)行上下文、不同作用域下變量提升與函數(shù)提升的表現(xiàn)、頂層對(duì)象以及如何避免創(chuàng)建...

    lmxdawn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<