我的总结的一些写JS代码的基本规范

平时工做中虽然有eslint这些工具帮助咱们规范一下基本的代码,但更多的仍是须要咱们自身去注重一下代码质量,如下是我我的的一些经验总结笔记,应该还有不少不足和优化的地方,但愿你们多多指教哈,多讨论javascript

1.不要用var,能使用const不用let

2.避免隐式转换,使用全等(===)进行判断

3.不要写冗余判断,好比

flag : a === b ? true : false     不建议
flag : a === b                      建议
复制代码

4.if判断超过3个分支需优化,考虑使用策略模式

if(a === 'a'){
    title = '标题1'
} else if(a === 'b'){
    title = '标题2'
} else if(a === 'c'){
    title = '标题3'
} else {
    title = '标题4'
}

建议
const objMap = {
    a:'标题1',
    b:'标题2',
    c:'标题3',
}
title = objMap[a] || '标题4'
复制代码

5.不要留空代码块,或空方法,如:

if(a){
   
}else{
  //业务逻辑
}
复制代码

6.判断数组是否有值 不须要 arr.lenth > 0 ,直接 arr.length

7.Array类型尽可能使用forEach map等这些方法,看上去更简洁,数据很少的状况下,和for循环性能,可忽略

8.从执行效率角度,能用Array解决的就不要用Object

9.遍历对象使用Object.keys方式

10.从某对象取多个字段时,超过3个属性赋值最好抽成一个方法,否则看上起太冗余了

const param = {
    name : options.name,
    phone : options.phone,
    address : options.address,
    city : options.city
}

建议

const feildArr = ['name','phone','city','address']
const param = {}
feildArr.forEach(feild => {
   param[feild] = options[feild] 
})

复制代码

11.若是只是普通的方法或者回调,能用箭头函数就用箭头函数,不要在项目中显式绑定或暂存this,除非特殊场景须要

12.不要在template写大量的判断表达式,这样会别人看代码感受很懵逼,能够在data内声明变量,在业务方法里进行处理和注释,好比:

<div v-if="obj && obj.name && obj.phone && obj.addess"></div>

复制代码

13.屡次判断对象深层属性时,不要增长判断次数,对于对象嵌套过深的,最好先将对象进行缓存

const openId = res && res.data && res.data.openId || ''
const codeId = res && res.data && res.data.codeId ||''

建议

if(res && res.data){
   const _data = res.data
   const openId = _data.openId || ''
   const codeId = _data.codeId || ''
}
或者
let openId = '',codeId = '';
try{
    const _data = res.data
    openId = _data.openId
    codeId = _data.codeId
} catch(e){
    
}

复制代码

14.须要入参发送给后端的字段,必定要和接口字段统一,否则在请求发送前,还要对params全部字段从新赋值一遍,这样就产生了不少冗余代码

15.写复杂业务代码时,最好遵循单一原则,一个方法只作一件事,方便复用

16.欢迎你们补充哈

相关文章
相关标签/搜索