我的總結的一些寫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.歡迎你們補充哈

相關文章
相關標籤/搜索