当前位置: 首页 > Web前端 > JavaScript

JavaScript手写题(二)

时间:2023-03-27 16:36:53 JavaScript

类型判断constmy_type_of=(data)=>{consttoString=Object.prototype.toString//方法一consttype=toString.call(data)//方法二consttype2=toString.call(data).slice(8,-1)//方法三consttype3=toString.call(data).split('')[1].slice(0,-1)}千分之一切constthousandth=(num:number|string,char:string):string=>{conststr=num.toString()constlen=str.lengthif(len<3)returnnum//取余数constremainder=len%3//如果余数大于零,这意味着它不能整除if(remainder>0){returnstr.slice(0,remainder)+char+str.match(/\d{3}/g).join(',')}returnstr.match(/\d{3}/g).join(',')}newnew是做什么的?1.新建一个对象2.将新对象的原型proto指向构造函数的原型prototype(改变this的指向)3.执行构造函数并为当前this添加属性和方法4.判断构造函数是否返回一个对象,如果是,则返回构造函数的对象,如果不是,则返回新创建的对象实现:function_new(){consttarget={}const[constructor,...args]=[...arguments];target._proto_=constructor.prototypeconstresult=constructor.prototypeif(result&&typeofresult=='object'||typeof结果=='function'){returnresult}returntarget}数组排序冒泡排序constarr=[5,3,46,7,89,45,6,78,6,4,1,8,5,2,3,7,5,6];for(leti=0;iarr[j+1]){[arr[j],arr[j+1]]=[arr[j+1],arr[j]];}}}双向冒泡排序constarr=[5,3,46,7,89,45,6,78,6,4,1,8,5,2,3,7,5,6];函数twoWay(arr){让小=0;让大=arr.length;while(smallarr[i+1]){[arr[i],arr[i+1]]找到一个大的值=[arr[i+1],arr[i]];}}大的-;//为(letj=large-1;j>small;j--){if(arr[j]