JavaScript函數(shù)補(bǔ)充

函數(shù)的默認(rèn)參數(shù)

JS函數(shù)參數(shù)的默認(rèn)值都是undefined枣接,寫(xiě)默認(rèn)參數(shù)的方法有兩種证舟,代碼如下:
以前常用方法(ES5):

function sum(a,b){
    b=(typeof b !== 'undefined') ? b:1;
    return a*b;
}
sum(5,2);//10
sum(5);//5

現(xiàn)在可用方法:

function sum(a,b=1){
    return a*b;
}
sum(5,2);//10
sum(5);//5

以上兩種方法都是將b的默認(rèn)值設(shè)置為1硕旗,當(dāng)傳入形參為空或者沒(méi)有傳入形參時(shí),默認(rèn)b的值為1
注:位于默認(rèn)參數(shù)后非默認(rèn)參數(shù)女责,參數(shù)設(shè)置仍然是從左往右漆枚,覆蓋默認(rèn)參數(shù),即使參數(shù)沒(méi)有默認(rèn)值
示例:

function f(x = 1, y) { 
  return [x, y]; 
}

f(); // [1, undefined]
f(2); // [2, undefined]

let定義

起源:let的出現(xiàn)是為了解決ES6之前老版本標(biāo)準(zhǔn)中的兩個(gè)問(wèn)題

  • 在JavaScript中如果定義了同名的變量抵知,那么后定義的變量會(huì)覆蓋前面定義的變量
  • 在老版本標(biāo)準(zhǔn)中JavaScript可以先使用變量再定義墙基,并且不會(huì)報(bào)錯(cuò)
    let不能定義同名變量,一旦定義在ES6中就會(huì)報(bào)錯(cuò)刷喜,而且let不能先調(diào)用再定義

全局變量

定義:在整個(gè)頁(yè)面任何地方都可以調(diào)用的變量就是全局變量
寫(xiě)法:

  • 寫(xiě)在JavaScript的{}之外的變量
  • 在塊級(jí)作用域中用var定義的變量
  • 在局部作用于或者塊級(jí)作用域中省略var或者let的變量

局部變量

定義:只能在固定代碼塊中被使用的變量残制,外部不能使用局部作用域中定義的局部變量
寫(xiě)法:在函數(shù)內(nèi)部,寫(xiě)在JavaScript函數(shù)后面的{}中的變量就是局部變量
注:局部變量?jī)?yōu)先于全局變量

塊級(jí)變量

定義:任何一對(duì){}中的代碼集都是屬于一個(gè)塊掖疮,在塊級(jí)作用域中使用let聲明的變量
寫(xiě)法:在{}中使用let聲明

垃圾回收機(jī)制

  • 在JavaScript的函數(shù)中初茶,每一個(gè)局部變量都會(huì)占著一定的空間,用來(lái)存儲(chǔ)他們的值浊闪,一旦函數(shù)執(zhí)行結(jié)束恼布,局部變量就沒(méi)有存在的意義了,所以JavaScript就會(huì)通過(guò)垃圾回收機(jī)制來(lái)銷(xiāo)毀這些局部變量搁宾,達(dá)到自動(dòng)釋放他們所占的內(nèi)存空間的目的折汞,減小瀏覽器的運(yùn)行負(fù)擔(dān)
  • 如果想保留局部變量的值,可以采用return返回或者利用全局變量來(lái)保存盖腿,所以如果一個(gè)函數(shù)中的變量是局部變量而運(yùn)行完之后沒(méi)有return保存數(shù)據(jù)爽待,當(dāng)網(wǎng)頁(yè)要輸出的時(shí)候就會(huì)出現(xiàn)沒(méi)有這個(gè)變量的情況,導(dǎo)致瀏覽器報(bào)錯(cuò)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末奸忽,一起剝皮案震驚了整個(gè)濱河市堕伪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌栗菜,老刑警劉巖欠雌,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異疙筹,居然都是意外死亡富俄,警方通過(guò)查閱死者的電腦和手機(jī)禁炒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)霍比,“玉大人幕袱,你說(shuō)我怎么就攤上這事∮扑玻” “怎么了们豌?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)浅妆。 經(jīng)常有香客問(wèn)我望迎,道長(zhǎng),這世上最難降的妖魔是什么凌外? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任辩尊,我火速辦了婚禮,結(jié)果婚禮上康辑,老公的妹妹穿的比我還像新娘摄欲。我一直安慰自己,他們只是感情好疮薇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布胸墙。 她就那樣靜靜地躺著,像睡著了一般惦辛。 火紅的嫁衣襯著肌膚如雪劳秋。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天胖齐,我揣著相機(jī)與錄音,去河邊找鬼嗽冒。 笑死呀伙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的添坊。 我是一名探鬼主播剿另,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贬蛙!你這毒婦竟也來(lái)了雨女?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤阳准,失蹤者是張志新(化名)和其女友劉穎氛堕,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體野蝇,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡讼稚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年括儒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锐想。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡帮寻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赠摇,到底是詐尸還是另有隱情固逗,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布藕帜,位于F島的核電站烫罩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏耘戚。R本人自食惡果不足惜嗡髓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望收津。 院中可真熱鬧饿这,春花似錦、人聲如沸撞秋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)吻贿。三九已至串结,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間舅列,已是汗流浹背肌割。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帐要,地道東北人把敞。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像榨惠,于是被迫代替她去往敵國(guó)和親奋早。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355