实现相同的逻辑功能,不同的人可能用不同的方式来编写代码实现,但是有的代码写得简洁明了,而且鲁棒性强,有的代码就写得冗余繁琐,而且常常漏洞百出,本文将持续总结本人在代码实践中的一些经验教训,鞭策自己不断地提高代码书写质量,也希望能够给其他的程序员提供一些参考。
一、在使用某个对象中的方法的时候,要对其进行判空操作,因为你拿到这个对象(特别是异步拿到的时候),谁也说不好发生什么,谁也不能确定拿到的就是你所期望的对象,所以记住铁律:在使用某个对象时,先判断它是不是你想要的那个对象。如:
if (obj) {
...
}
特别是那种连续取值,如a.b.c.d,更是要逐一判断是否为空,如果用嵌套的if当然不好,可以用链式&&:
if (a && a.b && a.b.c && a.b.c.d) {
...
}
前面说到使用一个对象前要对其进行判空操作,那么我们经常就会有这种写法:
if (obj) {
return express1;
}
else {
return express2;
}
巧用三目表达式简写一类逻辑
虽然这种写法简单明了,可读性强,但是由于代码块中只是简单的return操作,所以完全可以用三目表达式来写这类逻辑:
obj ? express1: express2;
二、善用数组的一些原生方法,如经常会遇到这种情况,我们想把数组a[]中的每个元素进行加工一下,然后push到数组b[]中:
let b = [];
a.foreach((item) => {
b.push(func(item));
})
这个时候我们就可以用数组的map方法,即: new[] + push = map,这样写法简洁明了:
let b = a.map((item) => {
return func(item);
})
这篇文章对数组中所有方法的用途进行简单的总结,可做参考。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。