javaScript函數(shù)

? 函數(shù)由數(shù)學中定義中引申來仁连。
? 函數(shù)就是玷禽,一個功能對應的所有語句的集合。
? 函數(shù)關(guān)鍵字:function
? 函數(shù)不能定義在循環(huán)屏歹、分支等語句中钠四。
? 語法:
function 函數(shù)名(參數(shù)1柔昼,參數(shù)2....) {
        函數(shù)體;
        // JavaScript語句
}
函數(shù)名();//調(diào)用函數(shù)執(zhí)行狭握。
// 標識符:變量名堵幽、函數(shù)名拟淮、屬性名干茉、類名、參數(shù)名很泊。
// 必須以字母角虫、下劃線、或者$開頭委造,后面可以跟著數(shù)字戳鹅、字母唧领、下劃線
代碼:
// 第一: 基礎(chǔ)函數(shù)定義
// 函數(shù)定義可以放在函數(shù)調(diào)用之前和之后都可以磺芭。
// 函數(shù)的關(guān)鍵字:function
function add() {
// 函數(shù)體
    console.log('my first function!');
}
// 函數(shù)的調(diào)用語句灸姊。
add();
// 第二:帶參數(shù)的函數(shù)
// 定義一個函數(shù),實現(xiàn)求兩個數(shù)的乘積
function mult(a, b) { // a \ b 形參隶债。
    // a * b;
    console.log(a * b);
    return a * b;// 把 a 和 b 的相乘=結(jié)果返回到函數(shù)調(diào)用者的地方腾它。
}
// 函數(shù)返回的結(jié)果: 直接賦值給了變量 t
// 2 \4 是實際傳遞的參數(shù),實參死讹。
var t = mult(2, 4); // 執(zhí)行 mult 函數(shù)瞒滴。給函數(shù)體傳遞 2 和 4 兩個參數(shù)。
console.log('t = ' + t);

1.函數(shù)的封裝

?計算1到n的和赞警,可能用到很多次妓忍,每寫一次都要重復嗎?
function sumNum(n) {
    var i = 1, result = 0;
    if( n && n >= 1){
        while( i <= n) {
            result += i;
        }
    }
return result;//返回結(jié)果
}//能改進一下嗎仅颇?
函數(shù)調(diào)用:
sumNum(20);//自動返回result,以后直接拿來用就可以了碘举。

2.return子句

? return標識函數(shù)的結(jié)束忘瓦。
? 當程序遇到return時,函數(shù)立即結(jié)束并返回相應的值引颈。否則函數(shù)執(zhí)行到}結(jié)束耕皮。
? 如果函數(shù)沒有任何的返回值,JavaScript會默認返回undefined

3.函數(shù)的參數(shù)

形參和實參匹配傳遞
形參就是:函數(shù)定義的參數(shù)蝙场。
實參:就是函數(shù)執(zhí)行傳遞的參數(shù)凌停。
形參和實參個數(shù)不匹配的時候
優(yōu)先從左向右進行匹配
實參個數(shù)可以少于形參,也可以多于形參
所有的參數(shù)都會放到 arguments

4.函數(shù)練習

1.給一個數(shù)字售滤,返回相應的星期罚拟。
2:星期二 ‘sss'=> 不是星期的格式  getWeekName(3);
2.用函數(shù)實現(xiàn)給一個整數(shù)n,返回從1到n的和完箩。
3.給定一個整數(shù)n(n>=3)赐俗,實現(xiàn)求斐波那契數(shù)列f(n) . 4.給定一個整數(shù)n(n>=2),求n的階乘

5.匿名函數(shù)

匿名函數(shù)就是沒有函數(shù)名的函數(shù)。一般會把匿名函數(shù)賦值一個變量進行使用弊知,或者匿名函數(shù)
聲明完了后立即調(diào)用自己阻逮。
匿名函數(shù)可以作為一個變量來使用。
匿名還是可以作為一個參數(shù)進行傳遞秩彤。
// 匿名函數(shù)
var f = function(a) {
    return a *a;
};
// 因為我們用 var 聲明的一個變量 f叔扼,f 的類型是 function
// f 變量跟其他變量一樣使用,可以作為其他函數(shù)的參數(shù)使用漫雷。
console.log(typeof f); // => function
console.log(f(3));
console.log(typeof f2);
console.log(f2(9));
// 函數(shù)的聲明
function f2(a) {
    return a * a;
}
// 區(qū)別: 變量聲明的函數(shù)(匿名函數(shù))不能進行函數(shù)提升瓜富。

6.函數(shù)練習

 // 實現(xiàn) 1 到 n 的和。
function sum(n) {
// 實現(xiàn) 1 到 n 的計算
// -9, 0 ==0 'ssss' "0" == 0 null !=0 undefined != 0 false ..
// 如果用戶傳來的數(shù)據(jù)不是數(shù)字類型:返回 NaN
// 如果用戶傳來的數(shù)據(jù)不是大于 1 的數(shù)字:返回 0降盹;
if( typeof(n) != 'number') {
    return NaN; // 直接返回 NaN食呻。如果函數(shù)中執(zhí)行遇到了 return語句,函數(shù)立即結(jié)束。
}
if( n < 1 ) {
// return; // 直接寫 return 和沒有返回值的函數(shù)仅胞,都會返回一
個默認的 undefined
return 0;
}
// 大于 1 的情況下
var i = 1, result = 0;
    while( i <= n ) {
        result += i;
        i++;
    }
return result;// 把計算的和返回每辟。
}
var t = sum(7); // => 1+ 2+ 3+..7
console.log(t);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市干旧,隨后出現(xiàn)的幾起案子渠欺,更是在濱河造成了極大的恐慌,老刑警劉巖椎眯,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挠将,死亡現(xiàn)場離奇詭異,居然都是意外死亡编整,警方通過查閱死者的電腦和手機舔稀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掌测,“玉大人内贮,你說我怎么就攤上這事」” “怎么了夜郁?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長粘勒。 經(jīng)常有香客問我竞端,道長,這世上最難降的妖魔是什么庙睡? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任事富,我火速辦了婚禮,結(jié)果婚禮上乘陪,老公的妹妹穿的比我還像新娘赵颅。我一直安慰自己,他們只是感情好暂刘,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布饺谬。 她就那樣靜靜地躺著,像睡著了一般谣拣。 火紅的嫁衣襯著肌膚如雪募寨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天森缠,我揣著相機與錄音拔鹰,去河邊找鬼。 笑死贵涵,一個胖子當著我的面吹牛列肢,可吹牛的內(nèi)容都是我干的恰画。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼瓷马,長吁一口氣:“原來是場噩夢啊……” “哼拴还!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起欧聘,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤片林,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后怀骤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體费封,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年蒋伦,在試婚紗的時候發(fā)現(xiàn)自己被綠了弓摘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡痕届,死狀恐怖韧献,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情爷抓,我是刑警寧澤势决,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布阻塑,位于F島的核電站蓝撇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏陈莽。R本人自食惡果不足惜渤昌,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望走搁。 院中可真熱鬧独柑,春花似錦、人聲如沸私植。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽曲稼。三九已至索绪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贫悄,已是汗流浹背瑞驱。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窄坦,地道東北人唤反。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓凳寺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親彤侍。 傳聞我的和親對象是個殘疾皇子肠缨,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

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

  • 函數(shù)函數(shù)定義與調(diào)用變量作用域全局變量方法高階函數(shù)閉包箭頭函數(shù)$generator$ 函數(shù) 函數(shù)定義與調(diào)用 定義函數(shù)...
    染微言閱讀 577評論 0 5
  • 長久以來,面向?qū)ο笤?JavaScript 編程范式中占據(jù)著主導地位拥刻。不過怜瞒,最近人們對函數(shù)式編程的興趣正在增長。函...
    神刀閱讀 456評論 0 0
  • 函數(shù)就是最基本的一種代碼抽象的方式般哼。 定義函數(shù)function abs(x) {if (x >=0){return...
    _我和你一樣閱讀 439評論 0 0
  • 原文鏈接 Haskell和scala都支持函數(shù)的柯里化,JavaScript函數(shù)的柯里化還與JavaScript的...
    dreamapple閱讀 2,515評論 0 24
  • 午后觀看許鞍華《明月幾時有》吴汪,看到中間方姑媽媽被捕,錦榮與方姑見面一段蒸眠,心中難受漾橙,便把電視關(guān)了。2個多小時過去了楞卡,...
    悅_8a1d閱讀 159評論 0 0