JS純函數(shù)

純函數(shù)簡單定義

1.函數(shù)返回的結(jié)果只依賴它的參數(shù)
2.函數(shù)的執(zhí)行不會對該函數(shù)之外的其他對象等造成影響(副作用)

舉例說明1

        let a = 1

        let fn = (b) => {
            return a + b
        }

        fn(9) // 10

函數(shù)返回的結(jié)果依賴了外部變量a的影響,所以不是純函數(shù)。

        let fn = (a, b) => {
            return a + b
        }

        fn(1, 9) // 10

完全依賴傳入的參數(shù),所以是純函數(shù)。

舉例說明2

        let arr = [1, 2]

        let fn = (a, b) => {
            return a + b
        }
    
        fn(arr[0], 9)

這還是純函數(shù),改變一下

        let arr = [1, 2]

        let fn = (a, b) => {
            a[0] = 2
            return a[0] + b
        }
    
        fn(arr, 9)
        console.log(arr) //  [2, 2]

函數(shù)的執(zhí)行,改變了外部數(shù)組arr的值,產(chǎn)生副作用,所以不是純函數(shù)。

總結(jié)
純函數(shù)在復(fù)雜的代碼中是非常有用的,它的結(jié)果只依賴傳遞的參數(shù),且不會對外部造成任何影響,高可控又復(fù)用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 純函數(shù) 若一個(gè)函數(shù)對相同的輸入,永遠(yuǎn)會得到相同的輸出,并且不會影響該函數(shù)作用域以外的環(huán)境變量,則此函數(shù)稱為純函數(shù)。...
    PorcoPP閱讀 2,285評論 0 6
  • 要點(diǎn): 函數(shù)式編程:注意不是“函數(shù)編程”,多了一個(gè)“式” 模塊:如何使用模塊 面向?qū)ο缶幊蹋好嫦驅(qū)ο蟮母拍?、屬性?..
    victorsungo閱讀 1,694評論 0 6
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 3,115評論 2 9
  • 英語底子稍微好點(diǎn)的同學(xué) 可能聽過blue blood(藍(lán)血)這個(gè)表達(dá) 為啥血有藍(lán)的? 是我們的構(gòu)成不同么? 還是....
    駐下Kobe閱讀 829評論 0 2
  • 很喜歡這樣的狀態(tài),心無雜塵,沒有負(fù)擔(dān),一個(gè)人單車騎行,行走在云水之間,風(fēng)輕輕地吹著,我在路上,行人在路上,...
    風(fēng)之愛閱讀 446評論 7 12

友情鏈接更多精彩內(nèi)容