• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    js函數的副作用分析_javascript技巧

    來源:懂視網 責編:小采 時間:2020-11-27 21:00:17
    文檔

    js函數的副作用分析_javascript技巧

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

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

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

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

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

    文檔

    js函數的副作用分析_javascript技巧

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

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品99久久久久久宅男| 午夜一级日韩精品制服诱惑我们这边 | 国产精品亚洲精品观看不卡| 亚洲国产精品尤物yw在线| 日本精品不卡视频| 国产精品区一区二区三在线播放| 久久精品国产一区二区| 成人免费精品网站在线观看影片| 大伊香蕉精品视频在线导航| 四虎国产精品永久在线| 四虎影视永久在线精品免费| 国产精品视频九九九| 91po国产在线精品免费观看| 国产精品亚洲片在线va| 国产成人精品免费午夜app| 国产成人无码久久久精品一| 无码精品一区二区三区在线| 亚洲精品制服丝袜四区| 亚洲国产午夜中文字幕精品黄网站| 精品无码一级毛片免费视频观看| 国产精品人人做人人爽| 国产成人精品亚洲精品| 人精品影院| 国产乱人伦精品一区二区在线观看 | 国产精品亚洲不卡一区二区三区| 国产精品99久久精品| 国产精品无码无片在线观看| 色一乱一伦一图一区二区精品| 在线观看国产精品普通话对白精品| 午夜精品久久久久久影视777| 亚洲av无码国产精品色在线看不卡 | 精品一区二区三区中文字幕| 91精品国产福利尤物| 国产精品1024香蕉在线观看| 国产精品1区2区3区在线播放| 凹凸69堂国产成人精品视频| 国产精品国产三级国产专播| 久久夜色精品国产亚洲| www.日韩精品| 国内精品久久久久久不卡影院 | 精品一久久香蕉国产线看播放|