作者:YoussefZidan译者:前端小智来源:dev有梦想,有干货,微信搜索【大千世界】关注这个洗碗盘的清晨智慧。本文已收录到GitHubhttps://github.com/qq449245884/xiaozhi,里面有完整的测试站点、资料和我的一线厂商访谈系列文章。上个月花了1600搭建了一个高配置的阿里服务器,学习node和相应的框架。现:阿里云双十一活动1核2G1M,69元/1年,180元/3年这篇文章,分享一下我几乎每个项目都会用到的一些功能。randomNumber()获取指定区间内的随机数。***生成最小值和最大值之间的随机整数。*@param{number}min最小数*@param{number}max最大数*/exportconstrandomNumber=(min=0,max=1000)=>Math.ceil(min+Math.random()*(max-min));//示例console.log(randomNumber());//97capitalize()将字符串的首字母大写。/***大写字符串。*@param{string}s将被大写的字符串*/exportconstcapitalize=(s)=>{if(typeofs!=="string")return"";returns.charAt(0).toUpperCase()+s.slice(1);}//Exampleconsole.log(capitalize("cat"));//截断();这对于长字符串很有用,尤其是在表内。/***截断的字符串....*@param{string}要截断的文本字符串*@param{number}截断的长度*/exportconsttruncate=(text,num=10)=>{if(text.length>num){return`${text.substring(0,num-3)}...`}returntext;}//Exampleconsole.log(truncate("thisissomelongstringtobetruncated"));//这是...toTop();滚动到底部,可以通过behavior属性指定滚动速度状态。/***滚动到顶部*/exportconsttoTop=()=>{window.scroll({top:0,left:0,behavior:"smooth"});};softDeepClone()这个方法是经常用到的,因为有了它我们可以深度克隆嵌套的数组或者对象。但是,此函数不适用于newDate()、NaN、undefined、function、Number、Infinity等数据类型。如果想深度克隆以上数据类型,可以使用lodash中的cloneDeep()函数。/***深度克隆输入*@param{any}inputInput*/exportconstsoftDeepClone=(input)=>JSON.parse(JSON.stringify(input));appendURLParams()&getURLParams()快速添加和获取查询String的方法,我一般用它们来存储分页元数据到url。/***添加查询字符串并以查询字符串格式返回值。*@param{string}key*@param{string}value*/exportconstappendURLParams=(key,value)=>{constsearchParams=newURLSearchParams(window.location.search).set(key,value);returnsearchParams.toString();};//exampleconsole.log(appendURLParams("name","youssef"))//name=youssef/***从URL获取参数名称。*@param{string}name*/exportconstgetURLParams=(name)=>newURLSearchParams(window.location.search).get(name);//Exampleconsole.log(getURLParams(id))//5getInnerHTML()I每当服务器返回一串HTML元素时使用它。/***获取HTML字符串的内部文本*@param{string}strHTML字符串*/exportconstgetInnerHTML=(str)=>str.replace(/(<([^>]+)>)/gi,"");scrollToHide()向上滚动显示HTML元素,向下滚动隐藏它们。/***向下滚动时隐藏HTML元素。*@param{string}元素的id*@param{string}distanceinpxex:"100px"*/exportconstscrollToHide=(id,distance)=>{letprevScrollpos=window.pageYOffset;window.onscroll=()=>{constcurrentScrollPos=window.pageYOffset;if(prevScrollpos>currentScrollPos){document.getElementById(id).style.transform=`translateY(${distance})`;}else{document.getElementById(id).style.transform=`translateY(-${distance})`;}prevScrollpos=currentScrollPos;};};humanFileSize()以字节为单位传入文件,返回我们日常熟悉的单位。/***将字节转换为人类可读的文件大小。*@param{number}bytes字节数*/exportconsthumanFileSize=(bytes)=>{letBYTES=bytes;const阈值=1024;if(Math.abs(BYTES)
