在图书馆翻书,看到这本今年出版,很薄的书,翻起来看了几页,感受写的通俗易懂,大概记录一下。编程
JS 函数数组
var percnetValue = 5; var calculateTax = (value) => {return value/100 * (100+ percnetValue)}
calculateTax函数,用数学中函数的定义分析,它依赖了全局变量percnetValue,所以在数学意义上就不能成为一个真正的函数。
用数学函数的思想。从新写一下这个函数函数式编程
var calculateTax = (value, percnetValue) => {return value/100 * (100+ percnetValue)}
经过这个例子,咱们定义一下函数式编程:
函数式编程是一种范式,是仅依赖输入就能够完成自身逻辑的函数。函数
函数与方法的区别:
函数是一段能够经过其名称被调用的代码,能够传递参数并返回值
方法是一段必须经过其名称及其关联对象的名称被调用的代码code
var simple = (a) => {return a} //一个简单的函数 simple(5) // 名称调用 var obj = {simple: (a) => {return a}} // 一个简单的方法 obj.simple(5) // 名称及其关联对象调用
引用透明性
根据函数的定义,能够得出结论,全部的函数对于相同的输入都将返回相同的值。对象
命令式、声明式、抽象索引
命令式:如何作
咱们告诉编译器“得到长度,循环数组,用索引获取每个数组元素,等等”element
var array = [1,2,3] for(i=0,i<array.length;i++): console.log(array(i))
声明式:作什么
告诉编译器作什么,移除了如何作的部分编译器
var array = [1,2,3] array.forEach((element) => console.log(element))
函数式编程主张以抽象的方式建立函数,以利于重用数学