前言第一次发文章,有不好的地方还请见谅/写JavaScript代码的一些方法和技巧,虽然有时候条条大路通罗马,但可能总有一条最短路径。这篇文章会和大家分享一些你知道但用得不多的小技巧/一些小技巧1.newSet()数组的去重,在‘潜意识’中,我觉得应该去循环比较一下去重.实际上,ES6中新增了一个新的数据结构Set,可以用来方便的对数组进行去重,比如:letarr=[1,1,2,2,3,3];让set=newSet(arr);//让newArr=Array.from(set);//Array.from方法可以将Set结构体转为数组。控制台日志(newArr);//[1,2,3]2.Object.assign()也是ES6中提供的对象的扩展方法,可以用来合并复制对象,和以前一样繁琐。但是现在容易吗,例如:letobj1={a:1};letobj2={b:2};letobj3=Object.assign({},obj1,obj2);console.log(obj3);//{a:1,b:2}3.map()map方法用于遍历数组,有返回值。它可以对数组的每一项进行操作并生成一个新数组。有时它可以代替for和forEach循环。简化代码,例如:让arr3=[1,2,3,4,5];让newArr3=arr3.map((e,i)=>e*10);//将数组的每一项乘以10console.日志(newArr3);//[10,20,30,40,50]4.filter()filter方法也是用来遍历数组的,顾名思义就是对数组进行过滤,在每个元素之后触发回调函数,并且通过判断,保留或移除当前项,最后返回一个新的数组,例如:letarr4=[1,2,3,4,5];让newArr4=arr4.filter((e,i)=>e%2===0);//取模,过滤余数不为0的数console.log(newArr4);//[2,4]5.some()some方法用于遍历数组,在每个元素后触发一个回调函数,只要满足其中一个条件就返回true,否则返回false,类似||比较,例如:letarr5=[{result:true},{result:false}];letnewArr5=arr5.some((e,i)=>e.result);//只要一个为真,就是真的console.log(newArr5);//true6.every()//5相反的every方法用于遍历数组,在每个item元素后触发回调函数,只要有一个条件不满足就返回false,否则它返回true,类似于&&比较,例如:letarr6=[{result:true},{result:false}];letnewArr6=arr6.every((e,i)=>e.result);//只要一个为false,就是falseconsole.log(newArr6);//错误7。三元运算符这个运算符大家应该不陌生。在听写的情况下,可以简化ifelse的写法,如:lete=true,f='';if(e){f='aaa';}else{f='bbb';}//等同于f=e?'aaa':'bbb';8、~~运算符~符号在JavaScript中用于按位取反,而~~是取2次Invert,要求位运算的运算值是整数,结果也是整数,所以位运算会自动变成整数,可以巧妙去掉小数部分,类似于parseInt,例如:leta=1.23;让b=-1.23;console.log(~~a);//1console.log(~~b);//-1结语本文仅列举了JavaScript语法中一些常用的可以提高速度的方法,希望大家在熟练的学习过程中能够达到熟练运用知识的效果
