2023 年想好好记录下生活以及工作中技术成长的点滴,克服对知识的焦虑。好记性不如烂笔头,希望可以保持记录的习惯以及提升写作的兴趣。
text-decoration
起因是在工作群中有人报了一个样式上的 bug,商城中的打折商品会有一个划线的价格展示。没有关注之前是怎样实现的,看了下代码是封装了一个名为 Money 的组件。实现划线是使用的伪类选择器,而 CSS 的 text-decoration 属性可以完美的应用到这个场景,设置值为 line-through 就可以了。很简单的一个属性但是可以省去之前很复杂的代码实现,并且兼容性方面也没有什么问题。
text-decoration: line-through;
优化多 if 语句一种手段
在一些比较老的项目中,不难看到类似这样的代码:
if (today === 'monday') {
dayValue = 0;
} else if (today === 'tuesday') {
dayValue = 1;
} else if (today === 'wednesday') {
dayValue = 2;
} else if (today === 'thursday') {
dayValue = 3;
} else if (today === 'friday') {
dayValue = 4;
} else if (today === 'saturday') {
dayValue = 5;
} else if (today === 'sunday') {
dayValue = 6;
} else {
dayValue = -1;
}
针对这样比较冗长的代码,看起来也让维护者比较头大,如果我们将其用 switch 语句改造,则能得到以下这样的代码:
switch (day) {
case 'Monday':
dayValue = 0;
break;
case 'Tuesday':
dayValue = 1;
break;
case 'Wednesday':
dayValue = 2;
break;
case 'Thursday':
dayValue = 3;
break;
case 'Friday':
dayValue = 4;
break;
case 'Saturday':
dayValue = 5;
break;
case 'Sunday':
dayValue = 6;
break;
default:
dayValue = -1;
break;
}
但是优化过后的代码还是显得过于臃肿,可读性也不好,但是如果我们把“星期”和对应的“dayValue”用一个对象来做一个映射关系,那么应该可以用一段很简短的代码解决。
const weekMap = {
Monday: 0,
Tuesday: 1,
Wednesday: 2,
Thursday: 3,
Friday: 4,
Saturday: 5,
Sunday: 6,
};
dayValue = weekMap[day] ?? -1;
同时 else/default 的处理可以使用合并空值运算符来实现,是不是简单了很多呢?
好玩的
Qwerty Learner
一个很酷的背记英语单词的站点
关于工作
来字节已经是 283 天了,入职之前就听说字节的平均司龄是 7 个月,照目前看来我已经超越了平均水平。几周前就听说部门负责人要离职,也就意味着我们部门整个架构都要发生地震式的变化。看着外面的风声公司大规模裁员的新闻随处可见,还是希望自己可以幸免于这波风浪。同时也让自己的危机意识更加强烈了,时刻保持谦卑心态去学习,去接纳。