JavaScript作用域盐肃,匿名函數(shù)爪膊,閉包

作用域:
變量的的生效范圍,如果變量在整個頁面中額可以訪問到砸王,則該變量就是一個全局變量推盛,如果變量只是在某一個范圍內(nèi),則該變量為局部變量谦铃。
作用域:不單獨屬于某一個函數(shù)的變量都是一個全局變量耘成,在任何位置都可以訪問這個變量。
注:在某個函數(shù)中不使用var聲明的變量也是一個全局變量驹闰,不過在嚴(yán)格模式下不支持全局
局部作用域:在函數(shù)中使用var定義的變量都是局部變量瘪菌;
注:在js中塊級(也就是大括號)的概念并不想起其他語言那么完善(ECMAScript6中完善了這個概念;在其他語言中嘹朗,一對大括號的變量就是一個局部變量师妙,但是js中只要一個函數(shù)中定義的變量就是一個局部變量);

經(jīng)典的面試題:

![19ac53be-8616-49a5-a8d8-a4ebe598b399.png](http://upload-images.jianshu.io/upload_images/2956238-df03cc2386c2e8b2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

匿名函數(shù):沒有函數(shù)名屹培,可以通過事件來調(diào)用默穴,也可以通過變量調(diào)用怔檩,還可以通過自身來調(diào)用。

<script type="text/javascript">
        //具名函數(shù):有函數(shù)名字壁顶,可以通過函數(shù)名來調(diào)用的一種函數(shù)
        //匿名函數(shù):沒有函數(shù)名珠洗,可以通過事件來調(diào)用,也可以通過變量調(diào)用若专,還可以通過自身來調(diào)用许蓖。
            window.onload = function (){  //事件觸發(fā)
                alert("Hello Word!!!");
            }
            var a = function (){        //通過變量調(diào)用
                alert("Hello Word!!!---");
            };
            a();
            //通過自身調(diào)用
            (function () {
                alert("Hello Word!!!+++"); 
            })();   //函數(shù)的自調(diào)用
    </script>
    ```
匿名函數(shù)的作用:
    給事件添加匿名函數(shù);
    匿名函數(shù)可以當(dāng)做參數(shù)傳遞调衰;
    匿名函數(shù)當(dāng)做返回值返回出去膊爪;


閉包:
    作用:
可以通過閉包在外部訪問局部變量;
凡是放在返回函數(shù)中的變量會被提升為全局變量嚎莉,駐留在內(nèi)存中不釋放米酬;
重點:閉包是一種思想, 本質(zhì)是函數(shù)中嵌套函數(shù)趋箩,當(dāng)調(diào)用外部的函數(shù)時赃额,內(nèi)部的函數(shù)不被調(diào)用且被返回出外側(cè)。叫确,只有調(diào)用內(nèi)部函數(shù)的時候內(nèi)部的函數(shù)才能被調(diào)用跳芳,內(nèi)部所用的變量會被駐留。

 閉包的練習(xí):
函數(shù)嵌套函數(shù)竹勉,當(dāng)內(nèi)部函數(shù)在定義他的作用域 被外部引用時就創(chuàng)建了該內(nèi)部函數(shù)的閉包飞盆。

<script type="text/javascript">
//讓外部的作用域可以訪問到局部變量
function fn1(){
var a = 12;
function fn2(){
a += 12;
console.log(a);
}
return fn2;
}
//函數(shù)套函數(shù) 吧內(nèi)嵌的函數(shù)返回出來。
var result = fn1(); // result = fn2();
result();
console.log(result);
</script>

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript">
window.onload = function(){
for(var i=1;i<4;i++){
//獲取按鈕
var btn = document.getElementById('btn'+i);//btn 是一個地址;
var arr = ['img/c1.jpg','img/c2.jpg','img/c3 .jpg'];
//num接受i的傳參 是會保留在內(nèi)存中
(function(num){
btn.onmouseover = function(){
console.log("btn"+num);
document.getElementById('img').src = arr[num];
};
})(i);
}
}
</script>
</head>
<body>
<button id="btn1">button1</button>
<button id="btn2">button2</button>
<button id="btn3">button3</button>
<div>
<img src="" id="img">
</div>
</body>
</html>

閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)次乓;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吓歇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子票腰,更是在濱河造成了極大的恐慌城看,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杏慰,死亡現(xiàn)場離奇詭異测柠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)逃默,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門鹃愤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來簇搅,“玉大人完域,你說我怎么就攤上這事〈窠” “怎么了吟税?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵凹耙,是天一觀的道長。 經(jīng)常有香客問我肠仪,道長肖抱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任异旧,我火速辦了婚禮意述,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吮蛹。我一直安慰自己荤崇,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布潮针。 她就那樣靜靜地躺著术荤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪每篷。 梳的紋絲不亂的頭發(fā)上瓣戚,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天,我揣著相機(jī)與錄音焦读,去河邊找鬼子库。 笑死,一個胖子當(dāng)著我的面吹牛吨灭,可吹牛的內(nèi)容都是我干的刚照。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼喧兄,長吁一口氣:“原來是場噩夢啊……” “哼无畔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吠冤,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤浑彰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拯辙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體郭变,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年涯保,在試婚紗的時候發(fā)現(xiàn)自己被綠了诉濒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡夕春,死狀恐怖未荒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情及志,我是刑警寧澤片排,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布寨腔,位于F島的核電站,受9級特大地震影響率寡,放射性物質(zhì)發(fā)生泄漏迫卢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一冶共、第九天 我趴在偏房一處隱蔽的房頂上張望乾蛤。 院中可真熱鬧,春花似錦捅僵、人聲如沸幻捏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽篡九。三九已至,卻和暖如春醋奠,著一層夾襖步出監(jiān)牢的瞬間榛臼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工窜司, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留沛善,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓塞祈,卻偏偏與公主長得像金刁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子议薪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

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