1208 今日总结
今日工作
- 迭代开发
潜在的技术难点:
- 弹框的拖拽和缩放;
- 弹框内的图片放大和缩放;
- 弹框内的图片拖拽移动;
可能的坑:
z-index
问题,可能被其他 组件遮盖;
相关资料:
今日心情
所见所想,有感而发
今日算法
今日学习:
今日复习:
手撕代码
防抖节流等各种手写,http和网络,浏览器原理,性能优化,Webpack
实现 compose
compose 接受多个 函数作为参数,返回一个新函数;
执行新函数 传入参数,执行顺序是和传入顺序相反;
即:compose(f1,f2,f3) ==> f3(param) => f2(param) => f1(param)
每次函数的执行参数都是上一个函数的执行结果;
js
function compose() {
const fns = [...arguments]
return function(args) {
return fns.reduceRight((pre, curFn) => pre = curFn(pre), args)
}
}
const fn1 = (param1) => { return "fn1-" + param1 }
const fn2 = (param2) => { return "fn2-" + param2 }
const fn3 = (param3) => { return "fn3-" + param3 }
const Fn = compose(fn1, fn2, fn3)
console.log('res', Fn('hello'))
// res fn1-fn2-fn3-hello
// 写成一行代码为:
const compose = (...fns) => (...args) => fns.reduceRight((res, fn) => [fn.call(null, ...res)], args)[0];
与之执行顺序相反的,叫 pipe 函数:
即:compose(f1,f2,f3) ==> f1(param) => f2(param) => f3(param)
代码:
js
function compose() {
const fns = [...arguments]
return function(args) {
return fns.reduce((pre, curFn) => pre = curFn(pre), args)
}
}
const fn1 = (param1) => { return "fn1-" + param1 }
const fn2 = (param2) => { return "fn2-" + param2 }
const fn3 = (param3) => { return "fn3-" + param3 }
const Fn = compose(fn1, fn2, fn3)
console.log('res', Fn('hello'))
// res fn3-fn2-fn1-hello
面经相关
八股文相关
某个好看的程序媛的优秀总结:
其他:
明日计划
- 算法:
- 学习:
- 复习:
- 手写:
- 面经复习:
TODOS
短期内要做的事情