前端代码规范常见错误 二

2022-11-02 14:46:01 浏览数 (1)


携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第24天,点击查看活动详情 >> # CSS知识框架

6、老生常谈 forEach、map的使用

先看下面的代码,map中有一个if判断,当条件成立返回一个新的对象,此时会有一个问题,遍历数组中不满足的条件的会返回一个undefined,此时再用filter是可以过滤掉,但是此时我们将遍历循环两次,推荐可以使用forEach一次遍历将事情处理完毕。

性能方面,取决于遍历时执行的事情的快慢,从本质上来说,他们性能差距不大,当然for还更快,但是不利于代码的阅读

在我们要遍历一个数组的时候,请记住一个原则:如果需要操作数组中每个元素(比如计算返回新的值),返回一个新的数组,且不需要改变原数组,那么使用map,其他遍历大概率请使用forEach,不管是性能及内存的使用都是有利的,当然也不完全死的,需要我们在写代码的时候更加严谨的思考。

7、switch中break的使用

我们都很清楚其实在switch中使用break还是return都是可以的,大部分时候是一致,但是也有意外情况,如果是在一个需要return的函数中去使用switch,那么此时return会直接跳出当前进程,出现意料之外的情况,所以和大家约定,不管什么情况下,都使用配套的关键字break,此外,在严格规范下,已经要有default进行兜底,除非你对传进来的参数的值非常确定,否则请加上,这也是代码健壮的体现。

8、判断返回 boolean

判断返回的就是一个boolean值!这样的地方非常多请大家注意,给人看到都会脸红的

9、尽量区别变量名的重复使用

10、多层if判断,增加代码性能负担

不推荐写法:

推荐写法:这样写法,更清晰

11、重复申明

12、(Vue)不要在computed中改变页面变量的值,如果需要改变,请使用watch

不推荐写法:

推荐写法:

13、禁止再循环中出现await(no-await-in-loop)

在迭代器的每个元素上执行运算是个常见的任务。然而,每次运算都执行 await,意味着该程序并没有充分利用 async/await 并行的好处。

通常,代码应该重构为立即创建所有 promise,然后通过 Promise.all() 访问结果。否则,每个后续的操作将不会执行,直到前一个操作执行完毕。

不推荐写法:

推荐写法:

14、禁止条件表达式中出现赋值操作符(no-cond-assign)

在条件语句中使用赋值操作符是有效的,而且条件始终执行,这样是很不靠谱的逻辑行为

0 人点赞