![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
yesz12358
努力学习吧
展开
-
用js实现一个控制异步最大并发数的函数
看到一个大佬写的控制异步并发数的函数,核心思想就是在并发数大于限制的时候,暂时先把操作放入通过promise组装一下,然后放入数组,每次执行完异步回调后就将操作按先入先出的顺序取出,然后执行,保证最大并发数在限制范围内。代码如下:class LimitPromise { constructor (limit) { this._limit = limit // 最大限制数 this._count = 0 // 目前并发的数量 this._taskQueue = [] //原创 2022-03-23 11:14:07 · 1269 阅读 · 0 评论 -
设计一个LazyMan类
今天看到一个面试题,设计LazyMan类实现以下功能LazyMan('Tony');// Hi I am TonyLazyMan('Tony').sleep(10).eat('lunch');// Hi I am Tony// 等待了10秒...// I am eating lunchLazyMan('Tony').eat('lunch').sleep(10).eat('dinner');// Hi I am Tony// I am eating lunch// 等待了10秒..原创 2022-03-22 09:59:33 · 554 阅读 · 0 评论 -
js的6种继承方式
今天复习了js的6种继承方式,想以写博客的方式加深一遍印象,也谈谈自己对js这6种继承方式的认识和理解先简单定义一下需要继承的函数function Parent (name) { this.name = name this.getName = function () { return this.name }}1. 原型链继承function Child () {}Child.prototype = new Parent()Child.prototype.name原创 2022-03-20 15:46:08 · 190 阅读 · 0 评论 -
用 js 实现 FIFO, LRU, LFU 缓存淘汰算法
看了网上一些人写的缓存淘汰算法,大概明白了这三种淘汰算法的实现思路,然后自己在对这些算法的理解基础上用js语言实现如下1. FIFO 先入先出这个相对比较简单,使用一个数组存储,在没到达最大存储空间时,只要set就一直往数组里面push,如果满了,就先把数组最前面的使用shift给删除了后再pushclass FIFOCache { constructor (limit) { this.limit = limit || 10 this.map = {} this.k原创 2022-03-17 12:09:28 · 1283 阅读 · 0 评论 -
防抖节流函数
今天代码里用到了节流函数,稀释事件触发频率,看了网上的一些写法有的是n秒内触发的话,给return掉。有的是n秒内触发的话,设置一个 setTimeout ,又等n秒再执行。都不太适合我的业务场景自己总结了一个适合自己业务场景的节流函数。如果n秒内执行的话,就设置 setTimeout 等到了n秒的间隔后默认执行一次function throttle(func, wait) { let startTime, timeout return function() { let now原创 2022-03-16 15:33:33 · 123 阅读 · 0 评论