Chrome console
首先,先介绍一个十分弱小且好用的开发工具,那就是Chrome的console。你能够在这里写代码来验证你的想法,反对主动缩进,以及简直所有ES6+的新语法。之后的小技巧都将用Chrome console来演示。
取得工夫戳
比拟惯例获取工夫戳的形式
const d = new Date;d.getTime();
介绍个更为简洁的形式
const timestamp = +new Date;
UTC工夫转换
还在用getUTCXxxx办法获取对应的UTC工夫,再拼成残缺的工夫?那你就out了。试试JSON.string办法吧!
const d = new Date;const utc = JSON.stringify(d); //残缺的UTC工夫串
转回local呢?
const localTime = new Date(utc);
!留神这种转换形式中,utc工夫串的开端是一个z,如果没有,则依照local的工夫来解决。
克隆
克隆是咱们比拟罕用的性能之一,不少人喜爱援用jq或者lodash库,其实齐全没有必要,同样用JSON提供的办法就能够实现。
const objectA = {a: 1, b: 2};const clonedA = JSON.parse(JSON.stringify(objectA));clonedA.b = 3;console.log(objectA); // {a: 1, b: 2}console.log(clonedA); // {a: 1, b: 2}
咱们能够看到,clone之后的对象b属性被扭转,然而原对象的a属性并没有发生变化。
!这种克隆形式尽管简便,然而想必曾经发现了问题,如果被克隆对象的属性中存在工夫对象,那克隆过程中工夫对象会被转成UTC字符串,这是咱们要留神的。解决办法很简略,用上文提到的办法吧日期转成工夫戳就能够了,在须要的中央再转换回来。
字符串转数字
用Number.parseXxxx办法把字符串转数字,看起来是不是比拟麻烦。又到了+大显神通的时候了。无论是负数还是小数,都能兼容。
let numberStr = "123";+numberStr; // 123numberStr = '123.12';+numberStr; // 123.12
你肯定猜到了,-是不是也能做同样的事?没错,-也能够转换!然而,-只能够转正数,正数的状况下会失落符号。-慎用!
数字转换字符串
间接在须要转换的数字后加上空字符串,最快捷的转换,比调用toString快很多吧。
123 + ""; // "123"
解构赋值
解构赋值分两种,解构对象和数组。
//对象const {a, b} = {a: 1, b: 2, c: 3};console.log(a, b); // 可间接获取到对象属性的值,不需点调用
//数组const [m, n] = [1, 2, 3];//数组能够更长,变量会依照地位匹配console.log(m, n);
举个实用栗子,获取cookie中的值
双数组匹配查问
理论我的项目常会碰到须要在两个数组匹配取值的状况,如果嵌套循环,效率低,并且代码看着不美观。利用对象的个性,能够简化复杂度。例如依据id匹配员工工资:
const employees = [ {id: 1, name: 'Tom'}, {id: 2, name: 'Jerry'}, {id: 3, name: 'Jim'}, {id: 4, name: 'Kate'}];const salary = [ {id: 1, salary: 10000}, {id: 2, salary: 20000}, {id: 3, salary: 30000}, {id: 4, salary: 40000}];const salaryObj = {};salary.map(({id, salary}) => salaryObj[id] = salary);employees.map(e => e.salary = salaryObj[e.id]);
set去重
数组去重很常见,用set实现,轻松加欢快!
const numbers = [1,2,3,4,1,2,3,4];const result = [... new Set(numbers)];
更多技巧期待大家去发现!
分享扭转生存!