1.将下标转成中文零一二三...exportfunctiontransfromNumber(number){constINDEX_MAP=['zero','one'.....]if(!number)returnif(number===10)returnINDEX_MAP[number]return[...number.toString()].reduce((pre,cur)=>pre+INDEX_MAP[cur],'')}2.判断整数的不同方法/*1.添加一个数字判断*/functionisInteger(obj){returntypeofobj==='number'&&obj%1===0}/*2.使用Math.round,Math.ceil,Math.floor判断整数舍入后仍等于自身。利用这个特性判断是否是整数*/functionisInteger(obj){returnMath.floor(obj)===obj}/*3.利用位运算符*/functionisInteger(obj){return(obj|0)===obj}/*4.ES6提供了Number.isInteger*/3。dom节点平滑地滚动到可见区域。顶部和底部的原生scrollTo方法没有动画,类似锚点跳跃,比较生硬,可以通过这个方法会有平滑的过渡效果functionscrollTo(element){element.scrollIntoView({behavior:"smooth",block:"start"})//topelement.scrollIntoView({behavior:"smooth",block:"end"})//Bottomelement.scrollIntoView({behavior:"smooth"})//视觉区域}4.获取随机颜色函数getRandomColor(){return`#${Math.floor(Math.random()*0xffffff).toString(16)}`;}5.检查对象是否为空通过使用Es6Reflect静态方法判断其长度,可以判断是否为空是空Array,也可以用Object.keys()判断functionisEmpty(obj){returnReflect.ownKeys(obj).length===0&&obj.constructor===Object;}6.布尔转换函数toBoolean(value,truthyValues=['true']){constnormalizedValue=String(value).toLowerCase().trim();返回truthyValues.includes(normalizedValue);}toBoolean('TRUE');//truetoBoolean('FALSE');//falsetoBoolean('YES',['yes']);//true7,各种数组克隆方法constclone=(arr)=>arr.slice(0);常量克隆=(arr)=>[...arr];constclone=(arr)=>Array.from(arr);constclone=(arr)=>arr.map((x)=>x);constclone=(arr)=>JSON。解析(JSON.stringify(arr));常量克隆=(arr)=>arr.concat([]);constclone=(arr)=>structuredClone(arr);8.调用getTime比较两个时间大小时间戳比较就够了,endDate){returnMath.max(0,(endDate.getFullYear()-startDate.getFullYear())*12-startDate.getMonth()+endDate.getMonth());}10.提取年、月、日、小时和分钟从时间秒开始因为toISOString会丢失时区,导致时差八小时,所以我们可以在格式化前加上八小时functionextract(date){constd=newDate(newDate(date).getTime()+8*0*1000);returnnewDate(d).toISOString().split(/[^0-9]/).slice(0,-1);}console.log(extract(newDate()))//['2022','09','19','18','06','11','187']11.判断参数是否为函数functionisFunction(v){return['[objectFunction]','[objectGeneratorFunction]','[objectAsyncFunction]','[objectPromise]'].includes(Object.prototype.toString.call(v));}12.计算两个坐标之间的距离函数distance(p1,p2){return`Math.sqrt(Math.pow(p2.x-p1.x,2)+Math.pow(p2.y-p1.y,2));}13、检测两个dom节点是否是否重叠。在某些场景下,我们需要判断dom是否碰撞或重叠。我们可以通过getBoundingClientRect得到dom的x1,y1,x2,y2坐标,然后比较坐标确定函数overlaps=(a,b){return(a.x1
