进阶之路第三天的学习总结!20200617 5:30 晴

昨天晚上实在是遭不住了,讲到ladash函数的时候困得不行就去睡了今天起大早补个课
在接触过Es6语法之后 发现给js带来了更高的性能和优化 只是当时学习的时候感觉差个啥 我自己的理解就是lodash就像是一个过渡 这个lodash函数也很强大!
lodash是一个纯函数库! 什么是纯函数 第二天学到了 也理解了 nice!
下边写几行代码做个lodash的总结吧!

// 演示 lodash
// first last toUpper reverse each includes find findIndx 为lodash的数组方法
const _ = require('lodash')
const arr = ['jal', 'cathy', 'yibo', 'lucy']

console.log(_.first(arr))
console.log(_.last(arr))
console.log(_.toUpper(_.first(arr)))
console.log(_.reverse(arr))
const r = _.each(arr, (item, index) => {
  console.log(item, index)
})
console.log(r)

这些都不难理解,然后到了缓存纯函数结果这里 !!这里没看明白怎么回事儿 今天早上特意的又来看了几遍!

// 记忆函数
const _ = require('lodash')
function getArea (r) {
  console.log(r)
  return Math.PI * r * r * r
}
// let getAreaWithMemory = _.memoize(getArea)
// console.log(getAreaWithMemory(4))
// console.log(getAreaWithMemory(4))
// console.log(getAreaWithMemory(4))
// console.log(getAreaWithMemory(4))
// 模拟memoize的实现
function memoize(fn) {
  const cache = {}
  return function () {
    let key = JSON.stringify(arguments)
    cache[key] = cache[key] || fn.apply(fn, arguments)
    return cache[key]
  }
}

let getAreaWithMemory = memoize(getArea)
console.log(getAreaWithMemory(4))
console.log(getAreaWithMemory(4))
console.log(getAreaWithMemory(4))
console.log(getAreaWithMemory(4))

总之就是这一节有点迷茫 希望到了后边的实例能再深度理解下!

然后学习到了柯里化! MD 又是第一次听说!!!!!慢慢的兴趣感!

柯里化

我是靠这两段代码理解的

// 普通的纯函数
function checkAge (mini, age) {
  return age >= mini
}
console.log(checkAge(18, 20))
console.log(checkAge(18, 24))
console.log(checkAge(22, 24))

// 闭包,高阶函数,函数的柯里化
function saveMini (mini) {
  return function (age) {
    return age >= mini
  }
}
// ES6 写法, 同上
// const saveMini = mini => age => age >= mini
const checkAge18 = saveMini(18)
const checkAge22 = saveMini(22)
console.log(checkAge18(20))
console.log(checkAge18(24))
console.log(checkAge22(24))

为了自己好记忆官方点儿就是
当一个函数有多个参数的时候,先传递一部分参数调用它(这部分参数以后永远不变)
然后返回一个新的函数接受剩余的参数,返回结果!
自己的理解白话一点就是 一个参数是固定的 另一个参数是是可变的!

愉快的早晨 ! 早安 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值