水仙花数
所谓的水仙花树是指一个三位数,具各位数字立方的和等于该数的本身 列如:153是一个水仙花,因为153等于1的三次方加上5的三次方+3的三次方
节流防抖
答:作⽤:本质上是优化⾼频率执⾏代码的⼀种⼿段 定义 节流: n 秒内只运⾏⼀次,若在 n 秒内重复触发,只有⼀次⽣效 防抖: n 秒后在执⾏该事件,若在 n 秒内被重复触发,则重新计时 相同点: 都可以通过使⽤ setTimeout 赛特猫特实现 ⽬的都是,降低回调执⾏频率。节省计算资源 不同点: 函数防抖,在⼀段连续操作结束后,处理回调,利⽤ clearTimeout可来二特猫特 和 setTimeout 实现。函 数节流,在⼀段连续操作中,每⼀段时间只执⾏⼀次,频率较⾼的事件中使⽤来提⾼性能 函数防抖关注⼀定时间连续触发的事件,只在最后执⾏⼀次,⽽函数节流⼀段时间内只执⾏⼀次
手写promise
所谓的promise,简单说看是一个容器,里面保持着某个未来才会结束的事件(通常是一个异步操作)的结果,从语法上说promise是一个对象,从它可以获取异步操作的消息,promise提供统一的api,各种异步操作都可以用同样的方法进行处理, promise有俩个特点
-
对象不受外界影响,promise代表的是一个异步操作,有三个状态pending(进行中)。fulfilled(已完成),rejected(已失效)
-
一旦状态改变,就不会在变,任何时候都会得到这个结果,promise对象得状态改变得话,只有俩种可能,从pending变成fulfilled和pending变成rejected。如果他发生改变以后,这个状态他就凝固了,在也不会变了,,这个时候也就称为resolved(已定性),如果改变已经发生,你在对这个promise对象添加回调函数,也会立即得到这个结果
promise也有一些缺点,首先,他无法取消promise
-
一但我们创建它就会立即执行,无法中途取消
-
如果不设置回调函数,promise内部抛出得错误,不会反应到外部
-
处与pending状态时,我们就无法得知当前我们得目标得这个进度到那个阶段(是刚刚开始函数即将完成)
基础语法
ES6规定,promise对象是一个构造函数,用来生成promise实列