• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    js函數(shù)的副作用分析_javascript技巧

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 21:00:17
    文檔

    js函數(shù)的副作用分析_javascript技巧

    js函數(shù)的副作用分析_javascript技巧:函數(shù)副作用會給程序設(shè)計帶來不必要的麻煩,給程序帶來十分難以查找的錯誤,并且降低程序的可讀性。嚴(yán)格的函數(shù)式語言要求函數(shù)必須無副作用。 函數(shù)的副作用相關(guān)的幾個概念, Pure Function、 Impure Function、 Referential Transparent。 純
    推薦度:
    導(dǎo)讀js函數(shù)的副作用分析_javascript技巧:函數(shù)副作用會給程序設(shè)計帶來不必要的麻煩,給程序帶來十分難以查找的錯誤,并且降低程序的可讀性。嚴(yán)格的函數(shù)式語言要求函數(shù)必須無副作用。 函數(shù)的副作用相關(guān)的幾個概念, Pure Function、 Impure Function、 Referential Transparent。 純

    函數(shù)副作用會給程序設(shè)計帶來不必要的麻煩,給程序帶來十分難以查找的錯誤,并且降低程序的可讀性。嚴(yán)格的函數(shù)式語言要求函數(shù)必須無副作用。
    函數(shù)的副作用相關(guān)的幾個概念, Pure Function、 Impure Function、 Referential Transparent。
    純函數(shù) ( Pure Function )
    輸入輸出數(shù)據(jù)流全是顯式(Explicit)的。 顯式(Explicit)的意思是,函數(shù)與外界交換數(shù)據(jù)只有一個唯一渠道——參數(shù)和返回值。函數(shù)從函數(shù)外部接受的所有輸入信息都通過參數(shù)傳遞到該函數(shù)內(nèi)部。函數(shù)輸出到函數(shù)外部的所有信息都通過返回值傳遞到該函數(shù)外部。
    非純函數(shù) ( Impure Function )
    與之相反。 隱式(Implicit)的意思是,函數(shù)通過參數(shù)和返回值以外的渠道,和外界進(jìn)行數(shù)據(jù)交換。比如讀取/修改全局變量,都叫作以隱式的方式和外界進(jìn)行數(shù)據(jù)交換。
    引用透明 ( Referential Transparent )
    引用透明的概念與函數(shù)的副作用相關(guān),且受其影響。 如果程序中兩個相同值得表達(dá)式能在該程序的任何地方互相替換,而不影響程序的動作,那么該程序就具有引用透明性。它的優(yōu)點是比非引用透明的語言的語義更容易理解,不那么晦澀。純函數(shù)式語言沒有變量,所以它們都具有引用透明性。
    以下示例說明了引用透明與函數(shù)副作用的結(jié)合
    代碼如下:
    result1 = (fun(a) + b) / (fun(a) -c);
    temp = fun(a);
    result2 = (temp + b) / (temp -c);

    如果函數(shù)沒有副作用,那么result1和result2將是等價的。然而如果fun有副作用,比如讓b或c加1,那么result1和result2將不相等。因此,副作用違背了引用透明性。
    在JavaScript中,引入了函數(shù)。但顯然JS中的函數(shù)可以訪問、修改全局變量(或定義在函數(shù)外的變量),如下
    代碼如下:
    var a = 5;
    function fun(){
    a = 10;
    }
    fun(); // a 變成了10

    JS中要想保證函數(shù)無副作用這項特性,只能依靠編程人員的習(xí)慣,即
    1,函數(shù)入口使用參數(shù)運算,而不修改它
    2,函數(shù)內(nèi)不修改函數(shù)外的變量,如全局變量
    3,運算結(jié)果通過函數(shù)返回給外部(出口)

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    js函數(shù)的副作用分析_javascript技巧

    js函數(shù)的副作用分析_javascript技巧:函數(shù)副作用會給程序設(shè)計帶來不必要的麻煩,給程序帶來十分難以查找的錯誤,并且降低程序的可讀性。嚴(yán)格的函數(shù)式語言要求函數(shù)必須無副作用。 函數(shù)的副作用相關(guān)的幾個概念, Pure Function、 Impure Function、 Referential Transparent。 純
    推薦度:
    標(biāo)簽: 副作用 技巧 的作用
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产成人精品免费视频网页大全| 精品成人av一区二区三区| 99精品影院| 国内精品人妻无码久久久影院 | 国产精品久久久久一区二区三区| 精品爆乳一区二区三区无码av| 婷婷久久精品国产| 国产精品午夜福利在线无码| 久久精品国产99国产精偷| 国产精品一久久香蕉国产线看观看| 无码欧精品亚洲日韩一区夜夜嗨| 国产精品v欧美精品v日韩| 欧美日韩精品一区二区| 97久久精品午夜一区二区| 特级精品毛片免费观看| 午夜三级国产精品理论三级| 精品久久久久久无码免费| 国产精品成人精品久久久| 国产成人精品怡红院在线观看| 久久久国产精品网站| 久久er热视频在这里精品| 久久精品国产福利国产秒| 91精品国产乱码久久久久久| 岛国精品一区免费视频在线观看| 精品久久久久久亚洲精品| 精品久久久噜噜噜久久久| 国产精品美女久久久久久2018| 久久亚洲私人国产精品| 久久99精品久久久久久野外 | 国产成人精品亚洲精品| 国产成人久久精品麻豆一区| 欧美精品亚洲精品日韩| 亚洲欧美日韩精品永久在线| 国产欧美国产精品第一区| 精品久久久久久综合日本| 亚洲国产精品久久| 国产精品一区二区三区免费| 国内精品久久久久久久影视麻豆| 久久精品二区| 亚洲精品成人区在线观看| 少妇人妻偷人精品无码视频新浪|