ES6/JavaScript使用技巧分享
在编写JavaScript代码的时候存在的一些方法和技巧,虽然有时候条条大路都通向罗马,但是也许总会有那么一条最短的路径可走。本文将一些都知道却不怎么用的小技巧分享给大家
一些小技巧
1.newSet()
数组的去重,在'潜意识'里面感觉就应该去循环然后对比去重,其实在ES6中新增提供了新的数据结构Set,用他可以轻松去重数组,比如:
letarr=[1,1,2,2,3,3]; letset=newSet(arr);// letnewArr=Array.from(set);//Array.from方法可以将Set结构转为数组。 console.log(newArr);//[1,2,3]
2.Object.assign()
也是ES6中提供的对象的扩展方法,其可以用于对象的合并拷贝,像之前对象合并也是很繁琐,但是现在很easy麽,比如:
letobj1={a:1}; letobj2={b:2}; letobj3=Object.assign({},obj1,obj2); console.log(obj3);//{a:1,b:2}
3.map()
map方法用于遍历数组,有返回值,可以对数组的每一项进行操作并生成一个新的数组,有些时候可以代替for和forEach循环,简化代码,比如:
letarr3=[1,2,3,4,5]; letnewArr3=arr3.map((e,i)=>e*10);//给数组每一项乘以10 console.log(newArr3);//[10,20,30,40,50]
4.filter()
filter方法同样用于遍历数组,顾名思义,就是过滤数组,在每一项元素后面触发一个回调函数,通过判断,保留或移除当前项,最后返回一个新的数组,比如:
letarr4=[1,2,3,4,5]; letnewArr4=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);//只要一个为true,即为true console.log(newArr5);//true
6.every()//与5相反的
every方法用于遍历数组,在每一项元素后面触发一个回调函数,只要一个不满足条件就返回false,否则返回true,类似于&&比较,比如:
letarr6=[{result:true},{result:false}]; letnewArr6=arr6.every((e,i)=>e.result);//只要一个为false,即为false console.log(newArr6);//false
7.三元运算符
该运算符应该大家都比较熟悉,在默写情况下可以简化ifelse的写法,比如:
lete=true, f=''; if(e){ f='aaa'; }else{ f='bbb'; } //等同于 f=e?'aaa':'bbb';
8.~~运算符
~符号用在JavaScript中有按位取反的作用,~~即是取反两次,而位运算的操作值要求是整数,其结果也是整数,所以经过位运算的都会自动变成整数,可以巧妙的去掉小数部分,类似于parseInt,比如:
leta=1.23; letb=-1.23; console.log(~~a);//1 console.log(~~b);//-1
结语
本文只列出了JavaScript语法中比较常见的几点能够提升速度的方法,希望大家在巧学过程中达到巧用知识的效果。