javascript 變量作用域

http://www.cnblogs.com/wangfupeng1988/p/3977924.html

javascript ?原型预柒、作用域鏈,講解的很好毯焕,能學(xué)會學(xué)懂


1.1 函數(shù)作用域

沒有塊作用域:即作用域不是以{}包圍的矫废,其作用域完成由函數(shù)來決定,因而if /for等語句中的花括號不是獨立的作用域绪穆。

如前述辨泳,JS的在函數(shù)中定義的局部變量只對這個函數(shù)內(nèi)部可見,稱之謂函數(shù)作用域玖院。

嵌套作用域變量搜索規(guī)則:當(dāng)在函數(shù)中引用一個變量時菠红,JS會搜索當(dāng)前函數(shù)作用域,如果沒有找到則搜索其上層作用域难菌,一直到全局作用域试溯。

函數(shù)內(nèi)無論什么位置定義的局部變量,在進入函數(shù)時都是已經(jīng)定義的郊酒,但未初始化遇绞,即為undefined键袱,直到運行到變量被賦值時才被初始化,因此若訪問了未初始化的變量摹闽,我們會得到undefined的說明蹄咖。


b)js里面只有函數(shù)作用域,以及全局作用域,


3 對象

在基于類型的語言中,對象是由類實例化付鹿,而JS是基于原型的系統(tǒng)澜汤,對象是由原型復(fù)制生成的。

JS中有兩個特殊的對象:Object與Function倘屹,它們都是構(gòu)造函數(shù)银亲,用于生成對象。注意此處的Function 函數(shù)是大寫的纽匙,函數(shù)對象


判斷一個變量是不是對象非常簡單务蝠。值類型的類型判斷用typeof,引用類型的類型判斷用instanceof烛缔。

一切(引用類型)都是對象馏段,對象是屬性的集合

functionFn() {this.name = '王福朋';this.year = 1988;

}varfn1 =newFn();

上面的這個例子很簡單,它能說明:對象可以通過函數(shù)來創(chuàng)建践瓷。對院喜!也只能說明這一點。

對象都是通過函數(shù)來創(chuàng)建的

functionFn() { }

Fn.prototype.name= '王福朋';

Fn.prototype.getYear=function() {return1988;

};varfn =newFn();

console.log(fn.name);

console.log(fn.getYear());

Fn是一個函數(shù)晕翠,fn對象是從Fn函數(shù)new出來的喷舀,這樣fn對象就可以調(diào)用Fn.prototype中的屬性。

這個prototype的屬性值是一個對象(屬性的集合淋肾,再次強調(diào)A蚵椤),默認的只有一個叫做constructor的屬性樊卓,指向這個函數(shù)本身拿愧。

如上圖,SuperType是是一個函數(shù)碌尔,右側(cè)的方框就是它的原型浇辜。

JavaScript 原型鏈和作用域的講解,已經(jīng)明白

http://www.cnblogs.com/wangfupeng1988/p/3977924.html


在一段js代碼拿過來真正一句一句運行之前唾戚,瀏覽器已經(jīng)做了一些“準(zhǔn)備工作”柳洋,其中就包括對變量的聲明,而不是賦值叹坦。變量賦值是在賦值語句執(zhí)行的時候進行的膳灶。可用下圖模擬:


“準(zhǔn)備工作”介紹完畢立由。

我們總結(jié)一下轧钓,在“準(zhǔn)備工作”中完成了哪些工作:

變量、函數(shù)表達式——變量聲明锐膜,默認賦值為undefined毕箍;

this——賦值;

函數(shù)聲明——賦值道盏;

這三種數(shù)據(jù)的準(zhǔn)備情況我們稱之為“執(zhí)行上下文”或者“執(zhí)行上下文環(huán)境”而柑。

函數(shù)每被調(diào)用一次,都會產(chǎn)生一個新的執(zhí)行上下文環(huán)境荷逞。因為不同的調(diào)用可能就會有不同的參數(shù)媒咳。

函數(shù)在定義的時候(不是調(diào)用的時候),就已經(jīng)確定了函數(shù)體內(nèi)部自由變量的作用域种远。


給執(zhí)行上下文環(huán)境下一個通俗的定義——在執(zhí)行代碼之前涩澡,把將要用到的所有的變量都事先拿出來,有的直接賦值了坠敷,有的先用undefined占個空

在函數(shù)中this到底取何值妙同,是在函數(shù)真正被調(diào)用執(zhí)行的時候確定的,函數(shù)定義的時候確定不了

因為this的取值是執(zhí)行上下文環(huán)境的一部分膝迎,每次調(diào)用函數(shù)粥帚,都會產(chǎn)生一個新的執(zhí)行上下文環(huán)境


執(zhí)行全局代碼時,會產(chǎn)生一個執(zhí)行上下文環(huán)境限次,每次調(diào)用函數(shù)都又會產(chǎn)生執(zhí)行上下文環(huán)境芒涡。當(dāng)函數(shù)調(diào)用完成時,這個上下文環(huán)境以及其中的數(shù)據(jù)都會被消除卖漫,再重新回到全局上下文環(huán)境费尽。處于活動狀態(tài)的執(zhí)行上下文環(huán)境只有一個。

作用域中變量的值是在執(zhí)行過程中產(chǎn)生的確定的懊亡,而作用域卻是在函數(shù)創(chuàng)建時就確定了

要到創(chuàng)建這個函數(shù)的那個作用域中取值——是“創(chuàng)建”依啰,而不是“調(diào)用”,切記切記——其實這就是所謂的“靜態(tài)作用域”店枣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末速警,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鸯两,更是在濱河造成了極大的恐慌闷旧,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钧唐,死亡現(xiàn)場離奇詭異忙灼,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門该园,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酸舍,“玉大人,你說我怎么就攤上這事里初】忻悖” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵双妨,是天一觀的道長淮阐。 經(jīng)常有香客問我,道長刁品,這世上最難降的妖魔是什么泣特? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮挑随,結(jié)果婚禮上状您,老公的妹妹穿的比我還像新娘。我一直安慰自己镀裤,他們只是感情好竞阐,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著暑劝,像睡著了一般骆莹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上担猛,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天幕垦,我揣著相機與錄音,去河邊找鬼傅联。 笑死先改,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蒸走。 我是一名探鬼主播仇奶,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼比驻!你這毒婦竟也來了该溯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤别惦,失蹤者是張志新(化名)和其女友劉穎狈茉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掸掸,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡氯庆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年蹭秋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堤撵。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡仁讨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出粒督,到底是詐尸還是另有隱情陪竿,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布屠橄,位于F島的核電站,受9級特大地震影響闰挡,放射性物質(zhì)發(fā)生泄漏锐墙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一长酗、第九天 我趴在偏房一處隱蔽的房頂上張望溪北。 院中可真熱鬧,春花似錦夺脾、人聲如沸之拨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚀乔。三九已至,卻和暖如春菲茬,著一層夾襖步出監(jiān)牢的瞬間吉挣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工婉弹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留睬魂,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓镀赌,卻偏偏與公主長得像氯哮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子商佛,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容