函數(shù)的定義和調(diào)用


函數(shù)的定義

第一種:

function abs(x){
    if (x >= 0) {
        return x;
    } else {
        return -x;
    }
}

由于JavaScript的函數(shù)也是一個對象哭当,上述定義的abs()函數(shù)實(shí)際上是一個函數(shù)對象猪腕,而函數(shù)名abs可以視為指向該函數(shù)的變量。所以有了第二種定義方式钦勘。

第二種:

var abs=function(x){
    if (x >= 0) {
        return x;
    } else {
        return -x;
    }
}; //按照完整語法需要在函數(shù)體末尾加一個;陋葡,表示賦值語句結(jié)束。

這種方式下彻采,該函數(shù)是一個匿名函數(shù)腐缤,但是賦值給了變量abs,因此可以通過變量abs來調(diào)用該函數(shù)肛响。

函數(shù)的調(diào)用

調(diào)用時岭粤,按順序傳入?yún)?shù)即可。
由于JavaScript允許傳入任意個參數(shù)而不影響調(diào)用特笋,因此傳入的參數(shù)比定義的參數(shù)多也沒有問題剃浇,雖然函數(shù)內(nèi)部并不需要這些參數(shù):
傳入的參數(shù)少哪?

abs()//此時abs(x)函數(shù)的參數(shù)x將收到undefined,計算結(jié)果為NaN虎囚。

要避免收到undefined臼寄,可以對參數(shù)進(jìn)行檢查:

function abs(x) {
    if (typeof x !== 'number') {
        throw 'Not a number';
    }
    if (x >= 0) {
        return x;
    } else {
        return -x;
    }
}

arguments

關(guān)鍵字arguments的作用域是 函數(shù)內(nèi)部,永遠(yuǎn)指向傳入函數(shù)的參數(shù)溜宽。arguments類似于Array但不是Array吉拳。
使用方法:

function abs(){
    if(arguments.length == 0){
        return 0;
    }
    var temp = arguments[0];
    return temp >= 0 ? temp:-temp;
}
abs();//返回0;
abs(9);//返回9适揉;
abs(-9);//返回9留攒;

應(yīng)用場景:常用于判斷傳入?yún)?shù)的個數(shù)。

//foo(a, [b], c)
//接受2-3個參數(shù)嫉嘀,其中第二個參數(shù) b 是可選參數(shù)炼邀;
function foo(a, b, c){
    if(arguments.length === 2){
    //實(shí)際拿到的參數(shù)是a和b,c是undefined剪侮;
        c = b;//將b的值賦給c拭宁;
        b = null;//把b變成默認(rèn)值;
    }
    ...//函數(shù)的具體實(shí)現(xiàn)瓣俯;
}
//要想把中間的可選參數(shù)b變成默認(rèn)值杰标,只能通過`arguments`進(jìn)行轉(zhuǎn)換;

rest

rest參數(shù)有ES6標(biāo)準(zhǔn)引入彩匕。作用是獲取除了已定義的參數(shù)之外的所有參數(shù)腔剂。

使用方法:

function foo(a, b, ...rest){
    console.log('a = ' + a);
    console.log('b = ' + b);
    console.log(rest);
}
foo(1, 2, 3, 4, 5);
//a = 1, b = 2, c = Array[3, 4, 5];
foo(1);
//a = 1, b = undefined, Array[];

rest要寫在所有參數(shù)的最后,前面加上三個點(diǎn)...驼仪,前兩個參數(shù)綁定到a,b上掸犬,其余所有的參數(shù)以數(shù)組的形式,傳給變量rest绪爸。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末湾碎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子奠货,更是在濱河造成了極大的恐慌介褥,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仇味,死亡現(xiàn)場離奇詭異呻顽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)丹墨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門廊遍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贩挣,你說我怎么就攤上這事喉前∶缓ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵卵迂,是天一觀的道長裕便。 經(jīng)常有香客問我,道長见咒,這世上最難降的妖魔是什么偿衰? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮改览,結(jié)果婚禮上下翎,老公的妹妹穿的比我還像新娘。我一直安慰自己宝当,他們只是感情好视事,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著庆揩,像睡著了一般俐东。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上订晌,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天虏辫,我揣著相機(jī)與錄音,去河邊找鬼腾仅。 笑死乒裆,一個胖子當(dāng)著我的面吹牛套利,可吹牛的內(nèi)容都是我干的推励。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼肉迫,長吁一口氣:“原來是場噩夢啊……” “哼验辞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起喊衫,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤跌造,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后族购,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壳贪,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年寝杖,在試婚紗的時候發(fā)現(xiàn)自己被綠了违施。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡瑟幕,死狀恐怖磕蒲,靈堂內(nèi)的尸體忽然破棺而出留潦,到底是詐尸還是另有隱情,我是刑警寧澤辣往,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布兔院,位于F島的核電站,受9級特大地震影響站削,放射性物質(zhì)發(fā)生泄漏坊萝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一许起、第九天 我趴在偏房一處隱蔽的房頂上張望屹堰。 院中可真熱鬧,春花似錦街氢、人聲如沸扯键。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荣刑。三九已至,卻和暖如春伦乔,著一層夾襖步出監(jiān)牢的瞬間厉亏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工烈和, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留爱只,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓招刹,卻偏偏與公主長得像恬试,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子疯暑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348

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

  • 定義函數(shù): function指出這是一個函數(shù)定義训柴; abs是函數(shù)名稱; (x)括號內(nèi)列出函數(shù)的參數(shù)妇拯,多個參數(shù)以,隔...
    mr_young_閱讀 311評論 0 1
  • 函數(shù)的定義和調(diào)用 arguments arguments幻馁,它只在函數(shù)內(nèi)部起作用,并且永遠(yuǎn)指向當(dāng)前函數(shù)的調(diào)用者傳入的...
    子尐小太爺閱讀 389評論 0 2
  • 函數(shù)函數(shù)定義與調(diào)用變量作用域全局變量方法高階函數(shù)閉包箭頭函數(shù)$generator$ 函數(shù) 函數(shù)定義與調(diào)用 定義函數(shù)...
    染微言閱讀 578評論 0 5
  • 作者:葛冰 貢獻(xiàn)者:白羽毛_4695越锈,艾尚伊芙 目 錄一仗嗦、神奇的攝像機(jī)(1)二、淡藍(lán)色的影子(6)三甘凭、在銅像的陰影...
    bigtrace閱讀 7,107評論 7 32
  • 獨(dú)逛超市迎吵,才發(fā)現(xiàn)闹丐,六神并不能喝 不知從何時起竞端,每每經(jīng)過網(wǎng)球場,都要側(cè)頭看一下贡翘,因為多了一絲牽絆 看到路過的學(xué)生,氣...
    我不是注銷了嗎閱讀 251評論 2 0