javascript代码重构需要考虑的问题(一)
1.将数组的长度进行存储,循环时就不用每次去读取一次数组长度,从而提升性能
例如:
for (var i = 0, len = arr.length; i < len; i++) {
//do something... }
2.js中所有 非空字符 ,非零,作布尔运算时,都会返回 true,反之返回 false。 (空格 属于非空字符)
例如:
if (value) { //do something... }
3.多层条件嵌套,进行 转换 或 拆分
//bad if (user.id === 10) { if (user.name !== "") { if (user.email === "email") { //do something... } } } //good if(user.id === 10 && user.name !=="" && user.email === "email") { //do something... } //good if (user.id !== 10) return; if (user.name === "") return; if (user.email !== "email") return; //do something...
4. 尽可能的减少DOM操作,将DOM操作放在循环体之外,数据处理好后,只执行一次DOM操作即可。
5.避免使用 连等号 声明赋值变量。js基础好点的同学都知道,这里存在着一个坑: b 会被声明为全局变量,意思就是在 test() 方法之外b也是可以被访问到的。 全局变量是不推荐使用的,容易污染环境。
6.
//bad
if (age > 20) {
console.log("年龄大于20");
}
//good
(age > 20) && console.log("年龄大于20");
这里的bad并不是说第一种写法不好,其实就可读性来说,第一种比第二种更好。 只是第二种写法更加优雅一点(个人觉得)。 这个句法可能有些同学用的比较少,解释一下:
如果第一个条件为 true ,那么就执行后面的语句,第一个条件为false, 后面的语句便不会执行。后面的语句可以是表达式,方法,或变量,常量都可以。 比如 (age > 20) && test()。
https://www.cnblogs.com/similar/p/5016424.html