当前位置: 首页 > 科技观察

六个

时间:2023-03-19 01:58:56 科技观察

JavaScript奇怪又好用的手势1.解构技巧通常我们需要在嵌套的多层对象中使用一些属性,会使用letobj={part1:{name:'zeroone',age:23}}//deconstructconst{part1:{name,age}}=obj//使用console.log(name,age)//0123这种情况下,你从part1中解构name和age之后,就不能再使用变量obj中的part1属性,如://....省略const{part1:{name,age}}=objconsole.log(part1)//UncaughtReferenceError:part1isnotdefined其实可以多次解构,比如://。...省略const{part1:{name,age},part1}=objconsole.log(part1)//{name:"zeroone",age:23}二、数字分隔符有时你会在文件中定义一个数值常数constmyMoney=1000000000000这么多0,1,2...6,7...数晕了,怎么办?数字分隔符被四舍五入!constmyMoney=1_000_000_000_000console.log(myMoney)//1000000000000没问题,数字分开后更直观!!3.try...catch...最后谁好?在普通的函数调用中,return一般会提前结束函数的执行functiondemo(){return1console.log('我是零一')return2}console.log(demo())//1而在try...catch..在.finally中return不会结束执行回来??这个程序返回什么?想想TowhoursLater~答案是:3最后得出结论比较厉害,然后我们可以做一些炫耀的操作functiondemo(){try{return1}catch(err){console.log(err)return2}finally{try{return3}finally{return4}}}console.log(demo())//返回44.获取当前调用栈}functionthridFunction(){console.log(newError().stack);}firstFunction();//=>Error//atthridFunction(:2:17)//atsecondFunction(:5:5)//atfirstFunction(:8:5)//at:10:1newError().stack这样可以随时获取当前代码执行的调用栈信息,有还有调试代码的方法五、一行代码生成随机字符串刚学js的时候想自己实现一个生成随机字符串的功能。这是functionhash(){lets=''conststrs=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9',]for(leti=0;i<10;i++){s+=strs[Math.floor(Math.random()*strs.length)]}returns}hash()//'www7v2if9r'真是麻烦!只写了26个字母和10个数字就写了好久(当然也可以用ASCII码实现,会更方便)。下面介绍一种方法,只需要一行超短代码就可以实现“随机生成字符串”函数conststr=Math.random().toString(36).substr(2,10);console.log(str);//'w5jetivt7e'我们还得到了一个10位的随机字符串,很酷Got:sunglasses:和我写的比起来,不算太帅。首先Math.random()生成一个[0,1),即0.123312,0.982931等数字,然后调用number的toString方法将其转换为36进制,根据MDN,36为十六进制转换应该包括字母a~z和数字0~9,因为这样生成0.89kjna21sa和这个类似,所以我们要截取小数部分,也就是从索引2开始截取10个字符开头就是我们要的随机字符串.许多开源库使用这种方法为DOM元素创建随机ID。6.获取dom最快的方法HTML中带有id属性的元素会被同名的全局ID变量引用

原来是这样获取dom的constel=document.getElementById('zero2one')console.log(el)//
现在console.log(zero2one)//
是不是很方便^-^