开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 6 天,点击查看活动详情
大家好,我是林家少爷,是一位专注于前端技术,立志成为前端技术专家的热血青年。
从2023年1月17日开始,我决定开辟一个新的专栏【刷爆LeetCode】,每天至少刷一道LeetCode原题,并且使用Typescript和原生JS来编写代码。
今天是第2天ヾ(◍°∇°◍)ノ゙
前面说过,我公司项目组的前端主管有一点代码洁癖,有时候我可能工作太忙,所以只是实现了功能,但是并没有做精简化的写法,所以被打回来了好几次重新修改。
虽然修改的地方也不多,但是索性这一次一次性总结多一点日常工作常用的ES6,分享给大家:
取值
举了栗子:
const obj = {
a:1,
b:2,
c:3,
d:4,
e:5,
}
日常工作错误写法:
const a = obj.a;
const b = obj.b;
const c = obj.c;
const d = obj.d;
const e = obj.e;
经过改进可以写成:
const {a,b,c,d,e} = obj;
const f = a + d;
const g = c + e;
// 解耦赋值
// 如果想创建的变量名和对象的属性名不一致,可以这么写
const {a:a1} = obj;
console.log(a1);
合并数据
比如合并两个数组,合并两个对象。
const a = [1,2,3];
const b = [1,5,6];
const c = a.concat(b);//[1,2,3,1,5,6]
const obj1 = {
a:1,
}
const obj2 = {
b:1,
}
const obj = Object.assign({}, obj1, obj2);//{a:1,b:1}
可以改进为
const a = [1,2,3];
const b = [1,5,6];
const c = [...new Set([...a,...b])];//[1,2,3,5,6]
const obj1 = {
a:1,
}
const obj2 = {
b:1,
}
const obj = {...obj1,...obj2};//{a:1,b:1}
拼接字符串
const name = '小明';
const score = 59;
let result = '';
if(score > 60){
result = `${name}的考试成绩及格`;
}else{
result = `${name}的考试成绩不及格`;
}
可以改进为:
const name = '小明';
const score = 59;
const result = `${name}${score > 60?'的考试成绩及格':'的考试成绩不及格'}`;
瞄了一眼时间,还剩半小时就过去了,先写到这里了。
为什么我都开展LeetCode第二天,我还没有正式开始分享算法题,原因是我的数据结构基础太烂了,要恶补一下JavaScript版本的数据结构和算法。
当然,执行力也是一方面,正所谓,没有执行力就没有竞争力。
今天我爸过来广州出差,来我这这里坐会,我陪下他到现在,终于回去酒店了,写完这篇文章,我还要去整理衣服,明天搬家了。
但是之前承诺的文章还是会如期奉上,难得周末,一整块时间。
下期再见,还有,我的【老林故事汇】明天开始正式连载,第一阶段预计要开展10期,我会用尽我的所有笔力,分享我大学到现在出来工作(4年大学+4年工作)8年以来的风风雨雨,我不甘心只做一个火鸡程序员,我要做高级火鸡技术专家,加油ヾ(◍°∇°◍)ノ゙