函數式編程

1.概念:以函數為基礎的編程方式和代碼組織方式,即任何代碼可以都是函數,且要求具有返回值;

// 非函數式
var title = "Functional Programming";
var saying = "This is not";
console.log(saying + title); // => This is not Functional Programming

// 函數式
var say = title => "This is " + title; 
var text = say("Functional Programming"); // => This is Functional Programming

2.基本條件 — 函數為一等公民
(1)函數能被賦值給變量;
(2)函數能被當作參數傳入;
(3)函數能被當作返回值;

3.純函數(pure function):只做運算并返回一個值,沒有額外的行為;
(1)引用透明(Referential transparency) — 函數內只會依賴 傳入參數,即給予相同的參數,永遠會返回相同的返回值;
(2)沒有副作用(No Side Effect) — 不會涉及到外部變量的使用和修改;

var arr = [1, 2, 3, 4, 5];
// 純函數:slice()
arr.slice(0, 3); // [1, 2, 3]
arr.slice(0, 3); // [1, 2, 3]

// 非純函數:splice()
arr.splice(0, 3); // [1, 2, 3]
arr.splice(0, 3); // [4, 5]
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容