es6
Liuer_Qin
这个作者很懒,什么都没留下…
展开
-
柯里化(curry)
概念柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。比如函数 _f(a,b,c,d) 经过柯里化后可以使用以下方式调用:f( a )( b )( c )( d )f( a, b )( c )( d )f( a, b )( c, d )f( a, b, c )( d )…实现function curry (f) { const g = (...args) => { if (arg原创 2021-07-01 17:34:50 · 101 阅读 · 0 评论 -
防抖和节流—应用场景及实现
防抖和节流防抖概念假定时间间隔为200ms,如果触发事件后的200ms内再次触发事件,则重新等待200ms,否则将成功执行指定函数。应用场景数据查询、监控用户输入代码实现function search() { var t = null; // 使用闭包 return function () { if (t) { clearTimeout(t); t = null } t = setTimeout(() => { console.log('执行原创 2020-09-05 15:25:23 · 273 阅读 · 0 评论 -
切片上传(秒传、断点续传)
切片上传1. 文件切片将文件分割成指定大小的chunk,存储到数组中createFileChunk(file, size=CHUNK_SIZE) { const chunks = [] let cur = 0 while (cur < this.file.size) { chunks.push({index: cur, file: this.file.slice(cur, cur+size)})原创 2021-06-04 00:26:20 · 2119 阅读 · 0 评论 -
js实现深拷贝
function deepCopy (target) { if (target) { if (Array.isArray(target)) { return copyArray(target) } else if (target.toString() === '[object Object]') { return copyObj(target) } } return target}function copyArray (arr) { ret原创 2021-04-21 16:20:35 · 120 阅读 · 0 评论 -
数组扁平化(展开多层嵌套数组)
方法一arr.join(',').split(',');方法二const flatten = (arr) => { return arr.reduce( (prev, cur) => prev.concat(cur instanceof Array ? flatten(cur) : cur), [] )}原创 2021-03-04 17:33:14 · 574 阅读 · 2 评论