JavaScript必须学会的11个工具方法
计算距离下次生日还有多少天
注意这里借助moment实现getBirthdayFun(){首先要获取到今年的生日letbirthdayTimemoment()。format(YYYY)1219通过时间戳去判断当前的时间戳是否大于今年生日的时间戳if(moment()。unix()moment(birthdayTime)。unix()){如果大于的话,那么就在今年的生日上再添加一年,已达到获取下次生日的时间birthdayTimemoment(birthdayTime)。add(1,y)。format(YYYYMMDD)}这个直接通过计算(下次生日的时间戳当前日期的时间戳)(606024)最后求出来的就是XX天returnparseInt((moment(birthdayTime)。unix()moment()。unix())(606024))}回到顶部这里我把vue3的案例拿过来constbindTop(){方法一这样可以实现,但是效果不太行window。scrollTo(0,0)document。documentElement。scrollTop0;方法二通过计时器去滚动视觉上会丝滑一些,没有太大的卡顿效果consttimeTopsetInterval((){去控制他的滑行距离document。documentElement。scrollTopscrollTopH。value50当滑到顶部的时候记得清除计时器()重点if(scrollTopH。value0){clearInterval(timeTop)}},10)}复制文本constcopyText(text){clipboardData在页面上将需要的东西复制到剪贴板上constclipboardDatawindow。clipboardDataif(clipboardData){clipboardData。clearData()clipboardData。setData(Text,text)returntrue}elseif(document。execCommand){注意document。execCommand已弃用但是有些浏览器依旧支持用的时候记得看兼容情况通过创建dom元素,去把要复制的内容拿到consteldocument。createElement(textarea)el。valuetextel。setAttribute(readonly,)el。style。positionabsoluteel。style。left9999pxdocument。body。appendChild(el)el。select()拷贝当前内容到剪贴板document。execCommand(copy)删除el节点document。body。removeChild(el)returntrue}returnfalse}copyText(hello!)ctrlvcopyTexttrue复制代码防抖节流
简单介绍防抖:指定时间内频繁触发一个事件,以最后一次触发为准节流:指定时间内频繁触发一个事件,只会触发一次应用场景有很多比如:
防抖是:input搜索,用户在不断输入内容的时候,用防抖来减少请求的次数并且节约请求资源
节流:场景普遍就是按钮点击,一秒点击10下会发起10次请求,节流以后1秒点再多次,都只会触发一次
下面我们来实现防抖fn需要防抖的函数,delay为定时器时间functiondebounce(fn,delay){lettimernull用于保存定时器returnfunction(){如果timer存在就清除定时器,重新计时if(timer){clearTimeout(timeout);}设置定时器,规定时间后执行真实要执行的函数timeoutsetTimeout((){fn。apply(this);},delay);}}节流functionthrottle(fn){lettimernull;首先设定一个变量,没有执行定时器时,默认为nullreturnfunction(){if(timer)return;当定时器没有执行的时候timer永远是false,后面无需执行timersetTimeout((){fn。apply(this,arguments);最后在setTimeout执行完毕后再把标记设置为true(关键)表示可以执行下一次循环了。timernull;},1000);};}过滤特殊字符functionfilterCharacter(str){首先设置一个模式letpatternnewRegExp(〔!():。,、?{}:;,〔〕。?!();{}【】‘;〕)letresultStr;for(leti0;istr。length;i){主要通过replace,pattern规则去把字符替换成空最后拼接在resultStrresultStrresultStrstr。substr(i,1)。replace(pattern,);}当循环结束的时候返回最后结果resultStrreturnresultStr;}示例filterCharacter(gyaskjdhy12316789!1123,。〔)结果:gyaskjdhy123167891123常用正则判断校验29位文字不符合为false符合为trueconstvalidateName(name){constreg〔一龥〕{2,9};returnreg。test(name);};校验手机号constvalidatePhoneNum(mobile){constreg1〔3,4,5,6,7,8,9〕d{9};returnreg。test(mobile);};校验6到18位大小写字母数字下划线组成的密码constvalidatePassword(password){constreg〔azAZ09〕{6,18};returnreg。test(password);};初始化数组fill()方法是es6新增的一个方法使用指定的元素填充数组,其实就是用默认内容初始化数组constarrListArray(6)。fill()console。log(arrList)此处打印的是〔,,,,,〕将RGB转换为十六进制functiongetColorFun(r,g,b){return((124)(r16)(g8)b)。toString(16)。slice(1)}getColorFun(178,232,55)这里输出的是b2e837检测是否是一个函数检测是否是一个函数其实写法以后直接isFunction就好了,避免重复写判断constisFunction(obj){returntypeofobjfunctiontypeofobj。nodeType!numbertypeofobj。item!function;};检测是否为一个安全数组检测是否为一个安全数组,若不是返回空数组这里借助isArray方法constsafeArray(array){returnArray。isArray(array)?array:〔〕}检测对象是否为一个安全对象首先要去判断当前对象是否为有效对象constisVaildObject(obj){returntypeofobjobject!Array。isArray(obj)Object。keys(obj)。length}这里直接用上面的函数如果有效就返回本身,无效就返回空对象constsafeObjectobjisVaildObject(obj)?obj:{}
头条创作挑战赛
数字化置身事内,双11试验场正在治愈行业的精神內耗这是第4801篇原创首发文章字数5k水姐文关注秦朔朋友圈IDqspyq2015支付内置在我们8090后的青少年时期,伴随着灯等灯等灯的旋律,那些小蓝人和那个intelinside小
小手拉大手文明齐步走高新区瑰宝明珠幼儿园文明城市主题活动文明是一阵清风爽朗了人们的心情文明是一盏灯照亮了前程的光明文明是一场雨滋润了干涸的心灵幼儿园是幼儿文明行为养成的重要时期,为深入推进全国文明城市创建工作,高遂宁高新区瑰宝明珠幼儿园
恢复乡土文化自信找寻历史记忆宋家沟乡村改造邮局锁着村庄的秘密雪中打量工人掐灭烟,在新旧村之间的桥上张望目送夕阳的马蹄掠过街道听见儿童们的笑声抱在一起一位设计师在村里设计时写下的感受宋家沟乡位于岢岚县东南部,其乡政府所在地宋
贵州这5个景区不值得推荐,乱收费现象频出,游客太坑了有一句话祖国的大好河山很美,但要看祖国的大好河山需要花很多钱!近年来,由于云南事件频发,贵州的旅游业也频频发生事故,许多景点已被改造和开发。但一切都不是绝对的,有好的就会有坏,那么
2022年中国飞行家大会暨第十四届安阳航空运动文化旅游节将于11月16日隆重开幕11月13日,安阳市人民政府新闻办公室召开新闻发布会,向社会发布2022年中国飞行家大会暨第十四届安阳航空运动文化旅游节活动情况。市工业和信息化局局长市航空发展建设办公室常务副主任
戏说晏几道一生只愿做个痴人!晏几道,字书原,号小山,是北宋著名词人。提到他就不得不先提一提他的父亲,被称为宰相词人的晏殊,晏殊5岁便有神童之称,14岁便成为进士后来官拜宰相。晏几道是晏殊的第七子,晏几道出生时
昔日战国七雄的都城,现在都变成了什么样子?楚国都城沦为乡镇春秋战国时期,齐楚燕韩赵魏秦,七国鼎立,它们之间纷争不断,最终被秦国嬴政统一,建立起中央集权制度的秦朝。时光荏苒,数千年过去,昔日的战国七雄,气派辉煌,那他们的都城,到现在都变成什
林则徐虎门销烟时间1839年,林则徐虎门销烟林则徐于道光十九年(1839)正月二十五日行抵广州。经一个星期的考虑和布置,他就动手了。他谕告外国人说利已不可害人,何得将尔国不食之鸦片烟带来内地,骗
努尔哈赤是如何发迹的努尔哈赤在他统掌大权登基之前,还是满族女真部落一位首领家的小伙夫。这首领除了打仗勇猛还十分地爱好美食,每餐都得有十菜一汤不可。有一天首领宴请宾客,按照惯例,努尔哈赤还是给主厨当助手
乔家大院后人如今现状,分别都过的什么生活?章子怡与乔家的关系我们都知道乔致庸娶了六房太太,一生有六个儿子,11个孙子,因为乔家家规森严不准纳妾,所以六房太太均属于续弦。据考证,乔家的第六代,有2个博士,3个硕士,12个大学生。乔致庸的六房太
杀神白起白起(?公元前257年),男,秦国白氏,名起,郿邑(今陕西眉县常兴镇白家村)人。战国时期四大名将之一,个人觉得,王翦廉颇李牧略逊一筹。他是战国时期杰出的军事家,兵家代表人物。熟知兵