怎么看网站是什么语言做的后台谷歌关键词查询工具
很多工具函数大家都知道,比如防抖函数,节流函数,深拷贝函数等,一问都会,一写就废,用lodash的掘友们,是不是基本功都退化了?CV工程师请不要把基本功给弄丢了,下面我来整理一下项目中常用的工具函数,多练练吧,不然面试现场写不出来多丢人啊!
1.防抖函数
/*** 防抖函数,最后一次调用,至少等待delay时间才执行,如果在delay时间内再次调用就重新计时。* @param {*} func 传入执行函数* @param {*} delay 定义间隔时间*/
export const debounce = (func,delay)=>{let timer;return function(...args){clearTimeout(timer);timer = setTimeout(()=>{func.apply(this,args);},delay)}
}
2.节流函数
/*** 节流函数,fuc函数离上一次执行间隔delay才执行下一次,如果在delay时间内就重新计时,如果大于delay则更新最后一次的执行时间。* @param {*} func 执行函数* @param {*} delay 执行时间*/
export const throttle = (func,delay)=>{let timer,lastreturn function(...args){let now = + new Date();if(last && now < last + delay){clearTimeout(timer);timer = setTimeout(()=>{last = now;func.apply(this,args);},delay)}else{last = now;func.apply(this,args);}}
}
3.深拷贝函数
/*** 深拷贝函数* @param {*} obj 参数*/
export const deeClone = (obj) => {//不是引用类型就不拷贝if(!(obj instanceof Object)) return obj //如果形参obj是数组,就创建数组,如果是对象就创建对象let objCopy = obj instanceof Array ? [] : {} for(