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

首頁 > 編程 > JavaScript > 正文

javascript中局部變量和全局變量的區別詳解

2019-11-20 13:05:47
字體:
來源:轉載
供稿:網友

javascript有兩種變量:局部變量和全局變量。當然,我們這篇文章是幫助大家真正的區別這兩種變量。

首先,局部變量是指只能在本變量聲明的函數內部調用。全局變量時整個代碼中都可以調用的變量。當然,單單從字面上理解肯定是不清楚的,下面我詳細的介紹下:
大家都知道,變量是需要用var關鍵字聲明的。但是javascript中也可以隱式的使用變量,就是不用聲明,直接使用。而且,千萬注意,javascript把隱式聲明的變量總是當成全局變量來使用的。
例如:

復制代碼 代碼如下:

function myName() {
 i = 'yuanjianhang';
}
myName();
function sayName() {
 alert(i);
}
sayName();

輸出結果為:yuanjianhang

這說明變量i就是一個全局的變量,如果把上面的代碼改成如下:

復制代碼 代碼如下:

function myName() {
 var i='yuanjianhang';
}
myName();
function sayName() {
 alert(i);
}
sayName();

此時,游覽器將沒有任何輸出結果,因為i 是在函數myName中定義的,所以它只是myName的局部變量,不可能被外部調用。
 
現在再回過頭來看下面的代碼:

復制代碼 代碼如下:

function myName() {
 i = 'yuanjianhang';
}
myName();
function sayName() {
 alert(i);
}
sayName();

現在,我們進行一下改動,把myName();去掉,代碼如下:

復制代碼 代碼如下:

function myName() {
 i = 'yuanjianhang';
}
function sayName() {
 alert(i);
}
sayName();

 此時,游覽器也不會有如何反應。因為雖然i是全局變量,但是函數myName()并沒有被調用,所以就相當于雖然聲明了i,但是并沒有給i賦予任何的值,所以沒有任何輸出。
同理,如果把上例改成:
 

復制代碼 代碼如下:

function myName() {
 
 i = 'yuanjianhang';
}
function sayName() {
 alert(i);
}
sayName();
myName();

這種情況下還是不會輸出任何結果,javascript代碼的執行時從上到下的,在sayName()函數被調用時會檢查變量i的值,此時函數myName尚未執行,也就是說i還沒有被賦值,所以不會輸出任何結果。
 
為了方便大家更好的理解,這里再舉一個例子:

復制代碼 代碼如下:

var i = 'yuanjianhang';
function myloveName() {
 i = 'guanxi';
}
myloveName();
function myName() {
 alert(i);
}
myName();

這次的結果是什么呢?
答案是guanxi
首先,i的原始值是yuanjianhang,但是當調用myloveName()函數之后,將i的值改為guanxi,所以最后的輸出結果是guanxi。

如果將代碼改為:

復制代碼 代碼如下:

var i = 'yuanjianhang';
function myloveName() {
 var i = 'guanxi';
}
myloveName();
function myName() {
 alert(i);
}
myName();

此時的結果就是yuanjianhang了,因為代碼中的兩個i不一樣,一個是全局的,一個是局部的,也可以這樣理解,雖然兩個i的名字一樣,但是這兩個i的本質卻不一樣,好像有兩個名字一樣的人一樣,雖然名字一樣,但卻不是同一個人。

如果將代碼改造成這樣:

復制代碼 代碼如下:

var i = 'yuanjianhang';
function myloveName() {
 i = 'guanxi';
}
function myName() {
 alert(i);
}
myName();
myloveName();

相信大家可以自己算出結果了,結果是yuanjianhang。

既然函數內部可以調用全局變量,那么下面這種情況呢:

復制代碼 代碼如下:

var i = 'yuanjianhang';
function myloveName() {
  i = 'guanxi';
 alert(i);
}
myloveName();

此時變量的值是哪個呢?

我們來分析下:

首先全局變量i被賦值為:yuanjianhang。

接下來myloveName()函數被調用,全局變量i被重新賦予新的值:guanxi

所以結果肯定是:guanxi。

如果我們把alert提前呢,像這樣:

復制代碼 代碼如下:

var i = 'yuanjianhang';
function myloveName() {
  alert(i);
 i = 'guanxi';
}
myloveName();

這時候結果是什么呢?
經過驗證結果是:undefined
如果代碼是這樣呢:

復制代碼 代碼如下:

var i = 'yuanjianhang';
function myloveName() {
  alert(i);
}
myloveName();

此時i的結果是:yuanjianhang

為什么會發生上面undefined情況,因為代碼的執行順序是從上到下的,在輸出i之前并沒有對i定義。所以從這里可以看出,使用代碼的時候,變量的聲明一定要放到代碼的前面,以避免出現類似的問題!

同理:

復制代碼 代碼如下:

var i = 'yuanjianhang';
function myloveName() {
 alert(i);
 var i = 'guanxi';
 
}
myloveName();

這種情況下也會輸出:undefined

好了,關于變量我只有這么多的介紹了,相信這些任何人都可以看明白。不管代碼如何復制,其核心是不會變的。

以上就是本文的全部內容了,小伙伴們對于javascript中局部變量和全局變量的區別是否有了更深刻的認識了呢,祝大家新年快樂~學習愉快。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
最近的2019中文字幕免费一页| 久热99视频在线观看| 狠狠做深爱婷婷久久综合一区| 色噜噜狠狠狠综合曰曰曰| 亚洲性猛交xxxxwww| 国产亚洲免费的视频看| 久久的精品视频| 成人妇女免费播放久久久| 欧美激情一二三| 久久精品国产69国产精品亚洲| 国产午夜精品理论片a级探花| 91精品国产综合久久香蕉| 国产成人欧美在线观看| 亚洲国产精品99久久| 日韩高清人体午夜| 亚洲xxxxx电影| 精品久久久一区| 日韩美女中文字幕| 国产精品久久久久aaaa九色| 欧美日韩国产第一页| 久久九九国产精品怡红院| 国产69精品99久久久久久宅男| 欧美限制级电影在线观看| 欧美激情一级精品国产| 在线日韩av观看| 国产精品av电影| 日韩av综合中文字幕| 日本精品久久久| 国产精品久久一区主播| 欧美电影第一页| 亚洲人成网在线播放| 日韩中文在线中文网三级| 国产精品一二区| 久久视频在线直播| 亚洲激情在线观看| 3344国产精品免费看| 久久成人综合视频| 有码中文亚洲精品| 精品亚洲一区二区三区四区五区| 国产欧美日韩专区发布| 亚洲国产成人久久综合| 九九久久国产精品| 国产精品综合不卡av| 日韩亚洲国产中文字幕| 亚洲国产精品成人av| 精品国产一区二区三区在线观看| 久久久久久久久91| 55夜色66夜色国产精品视频| 国产精品亚洲第一区| 国产精品久久久久91| 国产欧美精品一区二区三区介绍| 久久久久女教师免费一区| 亚洲精品久久久一区二区三区| 久久人人爽人人爽人人片亚洲| 国内揄拍国内精品少妇国语| 成人写真视频福利网| 懂色av一区二区三区| 亚洲乱亚洲乱妇无码| 91精品国产电影| 亚洲影院污污.| 这里只有精品久久| 91在线观看免费观看| 欧美极品欧美精品欧美视频| 91探花福利精品国产自产在线| 欧美激情精品久久久久久变态| 国产精品v片在线观看不卡| 国产一区二区三区在线视频| 97久久超碰福利国产精品…| 日韩经典中文字幕在线观看| 久久免费视频这里只有精品| 性视频1819p久久| 欧美国产第二页| 亚洲欧美日本精品| 日韩成人中文字幕在线观看| 国产精品久久91| 国产成人av在线播放| 亚洲欧洲在线播放| 国产日韩欧美中文| 欧美电影电视剧在线观看| 亚洲一区二区久久| 欧美高清视频在线| 亚洲午夜激情免费视频| 国产精品视频中文字幕91| 国产精品人人做人人爽| 91色精品视频在线| 91久久精品日日躁夜夜躁国产| 欧美国产中文字幕| 国产精品xxx视频| 国产视频精品va久久久久久| 在线播放国产一区二区三区| 2025国产精品视频| 一本色道久久88精品综合| 欧美亚洲视频在线看网址| 国产精品视频网| 91精品国产成人| 国产美女精彩久久| 欧美激情欧美狂野欧美精品| 亚洲欧美日韩精品久久亚洲区| 精品中文字幕在线2019| 茄子视频成人在线| 国产成人aa精品一区在线播放| 亚洲成人a级网| 黑人欧美xxxx| 亚洲欧美日韩精品久久奇米色影视| 91精品视频一区| 久久久91精品| 久久久av网站| 中文字幕亚洲一区二区三区五十路| 亚洲一区二区三区乱码aⅴ| 97久久精品人人澡人人爽缅北| 亚洲午夜精品视频| 亚洲天堂第一页| 日韩中文字幕在线精品| 亚洲欧美日韩在线一区| 51久久精品夜色国产麻豆| 91久久嫩草影院一区二区| 国产精品扒开腿做爽爽爽男男| 成人网页在线免费观看| 欧美主播福利视频| 国产精品一区专区欧美日韩| 国外色69视频在线观看| 中文字幕av一区| 久久99精品视频一区97| 亚洲国产天堂久久综合网| 精品久久久久久久久久ntr影视| 97精品久久久中文字幕免费| 欧美孕妇与黑人孕交| 精品久久久久久久久中文字幕| yellow中文字幕久久| 久久久久久久爱| 日韩av电影中文字幕| 精品久久久久久久久中文字幕| 日韩美女视频免费在线观看| 51ⅴ精品国产91久久久久久| 一区二区av在线| 91老司机在线| 欧美自拍大量在线观看| 欧美日韩性视频在线| 欧美黄色片在线观看| 国产做受69高潮| 日韩高清免费观看| 狠狠色噜噜狠狠狠狠97| 欧美剧在线观看| 日韩性xxxx爱| 国产成人久久久| 欧美精品一区二区三区国产精品| 国产精品国产三级国产aⅴ9色| 亚洲激情成人网| 欧美老妇交乱视频| 精品美女国产在线| 亚洲成色www8888| 国产91色在线|| 91在线观看欧美日韩| 亚洲自拍小视频| 久久人人97超碰精品888| 国产精品一区久久久| 成人久久久久久久| 欧美理论电影网| 欧美国产第一页| 97久久国产精品| 久久视频在线视频| 国产日韩精品综合网站| 久久精品这里热有精品| 欧美性少妇18aaaa视频|