本文已获得原作者YoussefZidan授权翻译。randomNumber()获取指定区间内的随机数。***生成最小值和最大值之间的随机整数。*@param{number}minMinnumber*@param{number}maxMaxNumber*/exportconstrandomNumber=(min=0,max=1000)=>Math.ceil(min+Math.random()*(max-min));//Exampleconsole.log(randomNumber());//97capitalize()将字符串首字母大写。/***CapitalizeStrings.*@param{string}sStringthatwillbeCapitalized*/exportconstcapitalize=(s)=>{if(typeofs!=="string")return"";返回.charAt(0).toUpperCase()+s。slice(1);}//Exampleconsole.log(capitalize("cat"));//Cattruncate();这对于长字符串很有用,尤其是在表内。/***截断字符串....*@param{string}要截断的文本字符串*@param{number}截断长度*/exportconsttruncate=(text,num=10)=>{if(text.length>num){return`${text.substring(0,num-3)}...`}returntext;}//Exampleconsole.log(truncate("thisissomelongstringtobetruncated"));//thisis...toTop();滚动到底部,可以通过behavior属性指定滚动速度状态。/***Scrolltotop*/exportconsttoTop=()=>{window.scroll({top:0,left:0,behavior:"smooth"});};softDeepClone()这个方法经常用到,因为有了它,我们可以深度克隆嵌套的数组或对象。但是,此函数不适用于newDate()、NaN、undefined、function、Number、Infinity等数据类型。如果想深度克隆以上数据类型,可以使用lodash中的cloneDeep()函数。/***Deepcloninginputs*@param{any}inputInput*/exportconstsoftDeepClone=(input)=>JSON.parse(JSON.stringify(input));appendURLParams()&getURLParams()方法快速添加和获取查询字符串,我通常使用它们将分页元数据存储到url。/***Appenquerystringandreturnthevalueinaquerystringformat.*@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/***GetparamnamefromURL.*@param{string}name*/exportconstgetURLParams=(name)=>newURLSearchParams(window.location.search).get(name);//Exampleconsole.log(getURLParams(id))//5getInnerHTML()每当服务器返回一串HTML元素时,我都会使用它。/***获取HTML字符串的内部Text*@param{string}strAstringofHTML*/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()以字节为单位输入文件,返回我们日常熟悉的单位。/***ConvertingBytestoReadableHumanFileSizes.*@param{number}bytesBytesinNumber*/exportconsthumanFileSize=(bytes)=>{letBYTES=bytes;constthresh=1024;if(Math.abs(BYTES)
