函数式编程

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]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容