亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript var聲明變量背后的原理示例解析

2019-11-20 21:53:52
字體:
來源:轉載
供稿:網友
只要是寫過點JS代碼,很簡單一個var 就完事了。那對于JS編譯器背后它又發生了什么呢?那就一步步通過代碼來講起。
復制代碼 代碼如下:

x = 1;
alert(x);
var y = function() {
alert(x);
var x = 2;
alert(x);
}
y();

上面的代碼也會你答對了它會分別輸出:1,undefined,2。對于我來說,第一反應它會輸出:1,1,2。為什么第二個會輸出undefined?在上面我明確定義了一個全局變量x,為何找不到?

那是因為:js編譯器在執行這個y函數的時候,會把把它body里面的聲明變量提前到最前面進行聲明。比如:var x=2; 編譯器先會在body最前面進行var x 聲明。其實上面的代碼等同于下面的這段代碼:
復制代碼 代碼如下:

x = 1;
alert(x);
var y = function() {<BR>var x;//此時x還未賦值,所以為undefined。
alert(x);
x = 2;
alert(x);
}
y();

所以也就不難理解x=undefined的了.但是如果把var x = 2;這段代碼給刪掉,在內部它沒有進行var聲明。它會一直沿著作用域向上找,此時的x 就為全局x.
接下來再看一個更有趣的例子。
復制代碼 代碼如下:

var a = 1;
function b() {
a = 10;
return;
}
b();
alert(a);
///////////////////////////////////
var a = 1;
function b() {
a = 10;
return;
function a() {}
} b(); alert(a);

例子很簡單。第一個例子為輸出10,第二個會輸出1。這是為什么呢?況且第二個例子我都return 了。按理都應當輸出10才對呀!那時因為JS編譯器在背后作怪。
兩段代碼差別就是第二個例子多了個function a(){};便這個函數體里面什么也沒有,并且也沒有對它進行任何調用。

其實JS編譯器在背后會把function a() {}編譯成 var a=function (){}。此時對于函數內部也有一個a=10; 外面的a些也還是1;根據JS作用域。會先找內部的a,如果找不到再向上一級一級找。
最張alert(a) 就會顯示1;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品久久久久久久久久久| 亚洲激情在线视频| 欧美放荡办公室videos4k| 日韩一区二区欧美| 成人性生交大片免费观看嘿嘿视频| 最近免费中文字幕视频2019| 欧美中文在线免费| 色噜噜狠狠色综合网图区| 国产亚洲a∨片在线观看| 久久99精品视频一区97| 欧美日韩美女视频| 国产成人精品免高潮在线观看| 日本久久久久亚洲中字幕| 欧美激情第6页| 国产精品91视频| 欧美性少妇18aaaa视频| 国产视频精品久久久| 国产va免费精品高清在线观看| 国产精品一二区| 亚洲春色另类小说| 亚洲精品综合久久中文字幕| 中文字幕在线看视频国产欧美在线看完整| 日本午夜在线亚洲.国产| 日韩精品在线第一页| 亚洲精品ady| 国产精品久久久久久久7电影| 国产精国产精品| 欧美精品生活片| 亚洲精品在线不卡| 亚洲天堂av在线播放| 97在线观看免费高清| 欧美黄色小视频| 国产精品视频午夜| 国产精品91久久久久久| 91精品国产高清自在线看超| 成人免费黄色网| 欧美—级a级欧美特级ar全黄| 欧美日韩国产91| 欧美野外猛男的大粗鳮| 中日韩美女免费视频网站在线观看| 欧美老女人www| 日本亚洲欧美三级| 亚洲精品国精品久久99热| 亚洲va国产va天堂va久久| 国产精品久久久久久久一区探花| 亚洲精品456在线播放狼人| 精品久久久一区二区| 国产91精品久| 国产精品偷伦视频免费观看国产| 欧美激情网友自拍| 91精品国产综合久久男男| 国产成人福利夜色影视| 成人在线小视频| 91久久综合亚洲鲁鲁五月天| 97成人在线视频| 亚洲九九九在线观看| 亚洲专区中文字幕| 国产欧美va欧美va香蕉在线| 亚洲成av人乱码色午夜| 欧美精品激情视频| 国产女人精品视频| 伊人亚洲福利一区二区三区| 日韩av在线影视| 精品夜色国产国偷在线| 欧美一级电影久久| 亚洲男女自偷自拍图片另类| 欧美一区二区三区四区在线| 91探花福利精品国产自产在线| 亚洲影院污污.| 欧美刺激性大交免费视频| 国产乱肥老妇国产一区二| 欧美一区二区视频97| 一色桃子一区二区| 91老司机精品视频| 夜夜狂射影院欧美极品| 91tv亚洲精品香蕉国产一区7ujn| 一区二区三区久久精品| 久久影视电视剧免费网站清宫辞电视| 欧美日韩一区二区精品| 精品国产一区二区三区久久| 欧美国产日韩中文字幕在线| 国产不卡av在线免费观看| 国产乱肥老妇国产一区二| 亚洲国产精品yw在线观看| 久久国产视频网站| 亚洲欧美制服中文字幕| 亚洲国产天堂网精品网站| 国外色69视频在线观看| 国产97人人超碰caoprom| 亚洲男人天堂九九视频| 欧美日韩国产成人| 日韩在线一区二区三区免费视频| 久久九九国产精品怡红院| 久久精品国产2020观看福利| 亚洲欧美日韩另类| 亚洲va码欧洲m码| 另类少妇人与禽zozz0性伦| 日韩美女福利视频| 国产欧美一区二区三区在线看| 91在线视频导航| 国产精品va在线播放| 怡红院精品视频| 国产在线日韩在线| 日韩欧美一区二区三区久久| 国产精品劲爆视频| 中文字幕亚洲一区在线观看| 78m国产成人精品视频| 国产精品人成电影在线观看| 久久免费少妇高潮久久精品99| 成人高清视频观看www| 亚洲最新视频在线| 国产精品爽黄69天堂a| 亚洲97在线观看| 色偷偷9999www| 欧美亚洲另类视频| 美女撒尿一区二区三区| 久久精品影视伊人网| 精品中文视频在线| 国产成人精品视频在线| 亚洲缚视频在线观看| 国产成人精品在线播放| 成人黄色午夜影院| 国产视频一区在线| 欧美成人午夜影院| 九九热r在线视频精品| 浅井舞香一区二区| 亚洲香蕉伊综合在人在线视看| 国产精品国语对白| 宅男66日本亚洲欧美视频| 精品久久香蕉国产线看观看gif| 久久av红桃一区二区小说| 日韩欧美黄色动漫| 91精品啪在线观看麻豆免费| 日韩女在线观看| 欧美壮男野外gaytube| 欧美—级a级欧美特级ar全黄| 欧美日在线观看| 成人免费看片视频| 日韩av电影国产| 免费91麻豆精品国产自产在线观看| 日韩欧美在线视频日韩欧美在线视频| 69影院欧美专区视频| 97人洗澡人人免费公开视频碰碰碰| 国产成人精品电影| 一区二区三区回区在观看免费视频| 亚洲精美色品网站| 色樱桃影院亚洲精品影院| 亚洲三级黄色在线观看| 九九热精品视频国产| 98午夜经典影视| 91美女片黄在线观看游戏| 另类色图亚洲色图| 国产精品永久免费在线| 成人福利视频在线观看| 亚洲一区美女视频在线观看免费| 亚洲网在线观看| 精品一区二区三区四区在线| 国产91精品青草社区| 国产精品高精视频免费| 成人精品aaaa网站| 在线精品高清中文字幕| 亚洲欧美国产高清va在线播| 亚洲国产中文字幕在线观看| 欧美日韩免费区域视频在线观看|