- 博客(15)
- 收藏
- 关注
原创 实现 Promise.all、实现 Promise.race
对于all方法而言,需要完成下面的核心功能: 传入参数为一个空的可迭代对象,则直接进行resolve。 如果参数中有一个promise失败,那么Promise.all返回的promise对象失败。 在任何情况下,Promise.all返回的promise的完成状态的结果都是一个数组 上代码! Promise.all = function(promises) { return new Promise((resolve, reject) => { l...
2021-12-30 10:15:00 281
原创 实现节流函数(throttle)
节流函数原理:规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效 例如:(连续不断动都需要调用时用,设一时间间隔),像dom的拖拽,如果用消抖的话,就会出现卡顿的感觉,因为只在停止的时候执行了一次,这个时候就应该用节流,在一定时间内多次执行,会流畅很多 适用场景: 拖拽场景:固定时间内只执行一次,防止超高频次触发位置变动 缩放场景:监控浏览器resize 动画场景:避免短时间内多次触发动画引起性能问题 不说了,上代码! // func是用户传入需要防抖的函数 /
2021-12-29 15:15:00 785
原创 实现防抖函数(debounce)
防抖函数原理:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时 防抖动和节流本质是不一样的。防抖动是将多次执行变为最后一次执行,节流是将多次执行变成每隔一段时间执行 例如:像仿百度搜索,就应该用防抖,当我连续不断输入时,不会发送请求;当我一段时间内不输入了,才会发送一次请求;如果小于这段时间继续输入的话,时间会重新计算,也不会发送请求。 不说了,上代码! // func是用户传入需要防抖的函数 // wait是等待时间 const debounce = (func, wait = 5
2021-12-28 17:15:22 1036
原创 手写实现New的过程
function create(fn, ...args) { if(typeof fn !== 'function') { throw 'fn must be a function'; } // 1、用new Object() 的方式新建了一个对象obj // var obj = new Object() // 2、给该对象的__proto__赋值为fn.prototype,即设置原型链 // obj.__proto__ = fn.prototype // 1、2步骤合并.
2021-12-20 16:45:00 803
原创 行内元素有哪些?块级元素有哪些? 空(void)元素有那些?行内元素和块级元素有什么区别?
行内元素有哪些?块级元素有哪些? 空(void)元素有那些?行内元素和块级元素有什么区别?
2021-12-18 11:07:51 256
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人