摘要:
暂时搁置 阅读全文
posted @ 2023-03-05 10:07
不想做混子的奋斗远
阅读(18)
评论(0)
推荐(0)
摘要:
Function.prototype.mycall = function(obj){ var args = Array.prototype.slice.apply(arguments,[1]); obj.fn = this; obj.fn(...args);//es6的解构语法,也可以使用obj.f 阅读全文
posted @ 2023-03-05 10:06
不想做混子的奋斗远
阅读(38)
评论(0)
推荐(0)
摘要:
实现一个sleep函数 ①利用堵塞循环实现,因为js是单线程的,所以这个其实就是根本上的sleep function sleep(delay) { var start = (new Date()).getTime(); while ((new Date()).getTime() - start < 阅读全文
posted @ 2023-03-05 09:47
不想做混子的奋斗远
阅读(79)
评论(0)
推荐(0)
摘要:
手写防抖和节流工具函数、并理解其内部原理和应用场景 防抖 // 防抖: 一个函数 在设置的时间后执行 如果在设置的时间间隔期间再次触发 那么本次就无效 重新计算 // 触发高频时间后n秒内只会执行一次 如果n秒高频时间内再次触发 则会重新计算时间 // 原理 debounce 触发后 首先清除掉ti 阅读全文
posted @ 2023-03-05 09:41
不想做混子的奋斗远
阅读(38)
评论(0)
推荐(0)
摘要:
手写函数柯里化工具函数、并理解其应用场景和优势 什么是柯里化(Curring)??? 什么意思?简单来说,柯里化是一项技术,它用来改造多参数的函数。 简单讲就是把一个多参数的函数f,变换成接受部分参数的函数g,并且这个函数g会返回一个函数h,函数h用来接受其他参数。函数h可以继续柯里化。就是一个套娃 阅读全文
posted @ 2023-03-05 09:39
不想做混子的奋斗远
阅读(220)
评论(0)
推荐(0)
摘要:
前情提要 深拷贝:拷贝的是对象或者数组内部数据的实体,重新开辟了内存空间存储数据;浅拷贝:拷贝的是引用类型的指针,副本和原数组或对象指向同一个内存; ①递归方式 比较全面的深拷贝,缺点是较为繁琐 function deepClone(obj) { var target = {}; for(var k 阅读全文
posted @ 2023-03-05 09:11
不想做混子的奋斗远
阅读(91)
评论(0)
推荐(0)
摘要:
前情提要: map函数接收一个函数作为参数,作为参数的函数接收三个参数值,分别是遍历数组的每一项元素,元素的索引和数组本身。这三个参数刚好和reduce函数接收的第一个函数参数的第2、3、4个参数是对应的。这是实现的核心 实现思路是,将每次遍历的元素,作为传入的函数的参数,并将函数执行的结果放入新的 阅读全文
posted @ 2023-03-05 09:04
不想做混子的奋斗远
阅读(61)
评论(0)
推荐(0)
摘要:
①遍历 forEach ②sort排序 取索引 ③使用Math.max + apply var max1 = Math.max.call(null,3, 0, -7, 39); ④使用Math.max + 扩展运算符 let max=Math.max(...arr); 阅读全文
posted @ 2023-03-05 08:54
不想做混子的奋斗远
阅读(16)
评论(0)
推荐(0)
摘要:
2019年的ES10中新增了扁平化API flat ①flat实现指定深度的数组扁平化 function flatten6(arr,depth = 1) { if (!Array.isArray(arr)) return [] if(typeof depth !== 'number') depth 阅读全文
posted @ 2023-03-05 08:51
不想做混子的奋斗远
阅读(71)
评论(0)
推荐(0)
摘要:
首先了解一下什么是数组扁平化? 将一个嵌套多层的数组Array(嵌套可以是任何层数)转换为只有一层的数组。 数组去重 先总结数组的方法:pop、push、shift、unshift、sort、splice、slice、revere、concat join、indexOf、map、forEach、in 阅读全文
posted @ 2023-03-05 08:34
不想做混子的奋斗远
阅读(87)
评论(0)
推荐(0)

浙公网安备 33010602011771号