前言
大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心~
最近在 Code Review
代码仓库的一些提交代码,发现了一些代码问题,同时也多了一些想法,接下来分享给大家
多用可选链
很多在判断对象中的属性,会有意识地去使用 &&
判空,这是好习惯,但是其实如果用 ?.
可选链的话,代码会更加的简洁
当你不确定函数是否存在的时候,也可以使用可选链
多用includes
当一个变量需要进行多值判断的时候,很多人会这么去写
但是这么写,如果条件非常多的时候,写起来会非常不优雅,并且不好维护,想象一下,如果变量 a
改名了,那么,所有三等式子都得改变量名,所以这里其实可以使用 includes
来进行优化
函数参数尽量使用对象
很多人在写一个函数并定义参数的时候会这么去做,这么写很容易有一个问题,那就是中间有一些参数是可选的时候,就比如中间 b
其实我不想传的,但由于你这么定义参数传入方式,导致我需要传一个 undefined
进行占位
所以我建议是函数参数尽量使用对象,这样的话好拓展,并且传参方式更加灵活,像 b
其实我根本就不用使用占位去传了
魔法变量写注释 & 常量命名
魔法变量
是什么呢?我理解就是一些写死在代码里的值,比如以下
像这样写死在代码里的值,其实可维护性很差,因为接手的人根本不知道这些值是什么意思,所以这种魔法变量最好是能写好注释
或者你如果不想注释,你可以用一个常量保存起来,并且这些常量的命名必须清晰
尽量减少副作用
很多人在写函数的时候,会经常写一些 副作用
,什么是 副作用
呢?其实就是原本不属于这个函数该干的事,比如下面代码
上面这个计算函数其实已经 不纯
了,因为他有了副作用,所以写函数应该职责单一
,这样可复用性更高
使用 else if
很多人在进行多 if 判断时,喜欢只使用 if 去判断,但其实他们不知道这样是有隐患的
有什么隐患呢?请看下面代码,下面代码会导致两个 if 都为真
所以有时候得多使用 else if
,就不会有这些隐患啦
策略模式
请看下面这段代码,这样写的缺点在于,变量名一改,全部地方都得改,并且后面想要加额外的判断条件也比较麻烦
所以可以使用 策略模式
当有多判断进行方法执行的时候,也可以使用 策略模式
记得兜底
虽然现在有 TypeScript
的类型提示,但是它并没有运行时校验,所以一些场景中一定要记得判断兜底
在进行一些复杂的解析工作的时候,要使用 try...catch
来兜底
结语
我是林三心,一个待过小型toG型外包公司、大型外包公司、小公司、潜力型创业公司、大公司的作死型前端选手