javascript函数式编程
龙旗飘扬的舰队
[ 敬畏人生,对自已负责,热爱生活 ]
展开
-
js函数式编程术语之组合函数 compose
compose 组合函数概念:它将需要嵌套执行的函数平铺。嵌套执行指的是,一个函数的返回值将作为另一个函数的参数作用:实现函数式编程中的 pointfree 风格(无参数),使我们专注于【转换】而不是【数据】实现:接收多个函数作为参数,从右到左,一个函数的输入为另一个函数的输出意义:编程更精练、算法更清晰、无参数干扰威力:【任意组合】缺点:不能直观的看到参数示例var comp...原创 2019-01-10 18:14:16 · 703 阅读 · 0 评论 -
js中函数表达式和自执行函数表达式的用法总结
立即调用函数表达式给函数体加大括号,在有变量声明的情形下,没有任何区别但是,如果只是【自动执行】的情形下,就会不同因为,一个匿名函数,不加大括号,是不能自动执行的//以下情形并无差别var count100 = function getCount100(){ return(100) }();//100var count200 = (function getCount200(){ r...原创 2019-02-18 19:17:27 · 433 阅读 · 0 评论 -
箭头函数没有绑定this
箭头函数没有绑定this不要把【箭头函数】和【箭头函数的定义函数】弄混淆ecma262规范中明确规定,箭头函数根本没有自身的this绑定在函数执行前绑定this的时候,传入的thisArgument会被直接忽略也就是说箭头函数本身没法修改this,所以对this访问永远是它继承外部上下的this按照babel的实现来说,在箭头函数内部没有this引用的时候,默认编译成这样var f ...原创 2019-01-30 19:13:16 · 1371 阅读 · 0 评论 -
理解Generator生成器对象
Generator 对象(理解为生成器函数更好)注意,Generator函数,不可当作构造函数首先声明一个Generator 函数,以下均以 gen 为例function* gen(){ yield "first"; yield "second"; yield "third";}var res = gen();它是一个高阶函数(gen),可以生成一个可迭代的函数(..原创 2019-01-29 17:04:21 · 934 阅读 · 0 评论 -
撤底理解es6中的箭头函数
本质上是一个函数,是function是一个被编译层加工过的函数用 babel 编译一下箭头函数看看,如下//es6const a = ()=>{ console.log(this) };const b = ()=>{ console.log(arguments) }function aaa(){ const c = ()=>{ console.log(t...原创 2019-02-14 19:18:04 · 208 阅读 · 0 评论 -
js函数式编程最佳实践 - 持续更新
函数式编程最佳实践学习文档函数式编程术语数组字串处理function addString(el){ return el + "0";}var newArr = arr.map(addString).join("");var arr = ["1","2","3","4"];console.log(newArr);创建 tags// 创建 - 单个funct原创 2019-01-22 19:21:10 · 485 阅读 · 0 评论 -
js函数式编程之代码改善 - 封装和去重
改动前的代码,问题如下if语句滥用重复功能代码数据、ui和业务逻辑代码耦合不易测试function errorCatch(err) { if (err.status == 0) { wx.showToast({ title: '网络开小差了,请重试', icon: 'none', duration: 2000 }) } el...原创 2019-01-22 17:17:22 · 249 阅读 · 0 评论 -
js函数式编程术语总结 - 持续更新
参考文档1参考文档2函数式编程术语高阶函数 Higher-Order Functions以函数为参数的函数返回一个函数的函数函数的元 Arity比如,一个带有两个参数的函数被称为二元函数惰性求值 Lazy evaluation是一种按需求值机制,它会延迟对表达式的求值,直到其需要为止// 设置一个随机数,需要时,才会计算,每次计算都是一个不同的值const r...原创 2019-01-15 23:54:36 · 249 阅读 · 0 评论 -
underscore入门学习示例
目录underscore简介工具函数(Utility)对象函数(Object Functions)函数(Functions)数组函数(Array Functions)集合函数(Collections)链式语法(Chaining)参考文档underscore简介意为下划线它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象它弥补了 jQ...原创 2019-01-13 11:09:02 · 259 阅读 · 0 评论 -
js函数式编程术语之幂等性 Idempotent
幂等性 Idempotent了解这个概念前,需要知道以下概念[二元运算],它需要三个元素:二元运算符以及该运算符作用的两个变量。如四则运算的加、减、乘、除均属于二元运算。乘法下唯一两个幂等实数为0和1[一元运算],例如 ++ ,正+,负-。比如[高斯符号],它是一个数学符号,形式为方括号[x],表示不大于x的最大整数,高斯符号是幂等的[http方法的幂等],指的是同样的请求被执行一次与连...原创 2019-01-11 14:43:22 · 1091 阅读 · 0 评论 -
js中如何优雅修改一个多层嵌套list对象的值
如何优雅更改一个N层嵌套对象属性的值看下边的代码,要加工一个嵌套list的属性值,然后再赋值回去,大概只能这样写:dp.data.treelist = dp.data.treelist.map(...)由于对象嵌套比较深(有可能N层),每次赋值都需要重复这个嵌套过程(dp.data.treelis) 两次而我们希望的是,调用和赋值,可以(至少看起来)一次完成我们可以利用对象中的 ...原创 2019-02-19 11:34:50 · 13087 阅读 · 0 评论