js函數(shù)與函數(shù)編程式的理解

函數(shù)在實際開發(fā)應(yīng)用當(dāng)中拳锚,大概分為普通函數(shù)/匿名函數(shù)/自執(zhí)行函數(shù)/構(gòu)造函數(shù)/其中普通函數(shù)分為函數(shù)表達(dá)式谬运,函數(shù)聲明兩種。

在javascript當(dāng)中醋奠,聲明有兩種聲明方式幢竹,第一種是var變量聲明耳峦,第二種就是函數(shù)function聲明,在執(zhí)行上下文焕毫,創(chuàng)建變量對象的時候蹲坷,函數(shù)聲明的優(yōu)先級比變量聲明要高,所以在執(zhí)行上下文當(dāng)中邑飒,無論在什么位置聲明了函數(shù)循签,我們都可以直接使用。

函數(shù)表達(dá)式

函數(shù)表達(dá)式語法:var fn = function(){};

是將一個函數(shù)賦值給一個變量聲明疙咸,在執(zhí)行上下文的時候懦底,我們應(yīng)該以變量聲明的方式去判斷函數(shù)表達(dá)式

使用var聲明運行了兩布

var fn = undefined ?// 聲明變量fn = undefined

fn = function(){} ?//將值賦給變量

因為函數(shù)表達(dá)式與函數(shù)聲明的聲明方式不一樣,所有有一點聲明上的差異罕扎,在使用方式上面并無不同聚唐。

一般使用的場景為給函數(shù)添加方法,給構(gòu)造函數(shù)加方法之類的腔召。

匿名函數(shù)

匿名函數(shù)語法:function(){}

匿名函數(shù)故名意義杆查,就是一個沒有名字的函數(shù),使用場景多作為一個參數(shù)傳給函數(shù)

var fn = function(bar,img){

return bar + img

}

fn(function(){

return 1;

},30)

在以上的例子當(dāng)中臀蛛,將一個匿名函數(shù)作為參數(shù)傳給了fn函數(shù)表達(dá)式亲桦。

在執(zhí)行上下文創(chuàng)建的時候崖蜜,匿名函數(shù)作為anguments對象保存在了fn變量對象當(dāng)中

這個方式因為函數(shù)其實是在別動函數(shù)當(dāng)中執(zhí)行,所以也叫回調(diào)函數(shù)客峭;

自執(zhí)行函數(shù)與塊級作用域以及模塊化

因為js沒有塊級作用域豫领,所以我們一班用一個自執(zhí)行函數(shù)來模仿一個塊級作用域來提供一個獨立的執(zhí)行上下文,加上閉包舔琅,我們就可以將其模塊化等恐。

一個模塊包括:私有變量,私有方法备蚓,公用變量课蔬,公用方法;

根據(jù)作用域鏈的單向訪問郊尝,我們可以很輕易的創(chuàng)建私有變量和私有方法二跋。

而公用變量和方法,我們可以根據(jù)閉包的特性來做流昏,例如


這是例子

函數(shù)編程式

函數(shù)可以賦值給其他變量扎即,也可以作為一個參數(shù)傳給其他函數(shù),也可以作為其他函數(shù)的返回值

只用表達(dá)式不用語句

表達(dá)式是一個單純的運算過程况凉,結(jié)果是肯定會返回值的铺遂;

而語句是一個過程,是沒有值的

函數(shù)編程式要求只用表達(dá)式不用語句

沒有副作用

副作用的意思是函數(shù)內(nèi)部與外部進行互動茎刚,比方說修改了外部變量的值

函數(shù)編程式強調(diào)沒有副作用,意思是函數(shù)要保持獨立撤逢,功能就是返回一個新的值膛锭,不會去修改不關(guān)于它的任何東西,

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蚊荣,一起剝皮案震驚了整個濱河市初狰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌互例,老刑警劉巖奢入,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異媳叨,居然都是意外死亡腥光,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門糊秆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來武福,“玉大人,你說我怎么就攤上這事痘番∽狡” “怎么了平痰?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長伍纫。 經(jīng)常有香客問我宗雇,道長,這世上最難降的妖魔是什么莹规? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任赔蒲,我火速辦了婚禮,結(jié)果婚禮上访惜,老公的妹妹穿的比我還像新娘嘹履。我一直安慰自己,他們只是感情好债热,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布砾嫉。 她就那樣靜靜地躺著,像睡著了一般窒篱。 火紅的嫁衣襯著肌膚如雪焕刮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天墙杯,我揣著相機與錄音配并,去河邊找鬼。 笑死高镐,一個胖子當(dāng)著我的面吹牛溉旋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嫉髓,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼观腊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了算行?” 一聲冷哼從身側(cè)響起梧油,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎州邢,沒想到半個月后儡陨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡量淌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年骗村,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呀枢。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡叙身,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出硫狞,到底是詐尸還是另有隱情信轿,我是刑警寧澤晃痴,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站财忽,受9級特大地震影響倘核,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜即彪,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一紧唱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧隶校,春花似錦漏益、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至舞终,卻和暖如春轻庆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背敛劝。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工余爆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人夸盟。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓蛾方,卻偏偏與公主長得像,于是被迫代替她去往敵國和親上陕。 傳聞我的和親對象是個殘疾皇子桩砰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

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

  • 函數(shù)聲明和函數(shù)表達(dá)式有什么區(qū)別 (*)解析器會率先讀取函數(shù)聲明,并使其在執(zhí)行任何代碼之前可以訪問唆垃;函數(shù)表達(dá)式則必須...
    coolheadedY閱讀 388評論 0 1
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情痘儡,實現(xiàn)同樣的效果;這時候需要使用工廠模式辕万。簡單...
    舟漁行舟閱讀 7,761評論 2 17
  • 縱觀JavaScript中所有必須需要掌握的重點知識中,函數(shù)是我們在初學(xué)的時候最容易忽視的一個知識點沉删。在學(xué)習(xí)的過程...
    這波能反殺閱讀 30,105評論 108 288
  • 第一部分 準(zhǔn)入訓(xùn)練 第1章 進入忍者世界 js開發(fā)人員通常使用js庫來實現(xiàn)通用和可重用的功能渐尿。這些庫需要簡單易用,...
    如201608閱讀 1,352評論 1 2
  • 《煉金術(shù)師》矾瑰,又是一本描寫金融危機的書籍砖茸。本書強調(diào)ZF干預(yù)的必要性,如果缺乏合理的管控殴穴,經(jīng)濟緊縮凉夯、通貨膨脹會給國民...
    FrankCoach閱讀 475評論 0 0