JavaScript代碼優化

一、if else 語句中變量賦值爲布爾值編程

if (a > b) {
    status =  true;
} else {
    status = false;
}
// 能夠簡化爲
status = a > b

if語句的條件會自動轉換爲布爾值,若是在使用時不肯定是否爲布爾值,能夠對錶達式雙重取反(!!).json

二、if else 語句中變量賦值爲非布爾值數組

if (a > b) {
    status =  1;
} else {
    status = 2;
}
// 能夠簡化爲
status = a > b ? 1 : 2;

三、用命名常量代替魔數(數值是編程者本身指定的,其餘人不知道數值有什麼具體意義)app

function getUserState() {
    // 人數達到5人,不考慮時間直接成功
    if (users.length == 5) {
        return 1;
    }

// 超過期間 失敗
    if (serverTime > endTime) {
        return 0;
    }

// 在時間範圍內 && 人數不到5人
    if (joinedGroup == '0') {
        return  2;
    } else {
        return 3;
    }
    return;
}

0,1,2,3這些數字具體的含義不是很清晰,用常量來代替。函數

const STATE = {
    // 拼團失敗
    GROUP_SHOPPING_FAIL: 0,
    // 拼團成功
    GROUP_SHOPPING_SUCCESS: 1,
    // 符合參加活動的資格
    CAN_JOIN: 2,
    // 已經參加活動
    ALREADY_JOIN: 3
};

groupState = STATE => ({joinedUserCount, joinedGroup, serverTime, endTime}) => {
    if (joinedUserCount >= 5) {
        return STATE.GROUP_SHOPPING_SUCCESS;
    }
    if (serverTime > endTime) {
        return STATE.GROUP_SHOPPING_FAIL;
    }
    return joinedGroup == '0'
        ? STATE.CAN_JOIN
        : STATE.ALREADY_JOIN;
}

四、函數參數比較多(我的建議超過3個),最好用json對象,在方法裏面要判斷是否傳入對象,沒傳入對象,要賦值爲空對象,防止後面用對象的屬性報錯,傳入的參數最好能夠有個默認值。學習

五、在多個邏輯或(||)表達式中,同一個變量跟多個狀態作===比較。rest

e.target.id == 'titleDrag' || e.target.id == 'subtitleDrag'

// 改爲下面這種寫法,在條件比較多時就會顯得比較簡潔:
['titleDrag', 'subtitleDrag'].indexOf(e.target.id) > -1

六、建議再也不使用var命令,使用let或者const,由於使用var聲明的變量會提高到代碼塊的頭部,違反的變量先聲明後使用的原則。code

使用const聲明常量有2個好處:閱讀代碼的人會意識到不該該修改這個值;防止無心間修改變量致使錯誤。server

七、靜態字符串一概使用單引號,包含變量的動態字符串使用反引號(``)。對象

八、rest參數(…變量名)用於獲取函數的多餘參數,將用逗號分隔的參數序列保存到數組中,rest參數中的變量表明一個數組,能夠代替arguments對象。

擴展運算符(…)將一個數組轉爲用逗號分隔的參數序列。若是函數的形參爲多個變量,而實參是一個數組,則不須要使用apply將數組轉化成函數的參數,使用擴展運算符便可展開數組。

九、跟接口相關的代碼最好寫在一個文件中,在一個常量對象中保存接口名稱

const API = {
    GET_INFOS_BY_USER_ID:'getInfosByUserId'
};


export var getInfosByUserId = function (params) {
    return getJSONP(API.GET_INFOS_BY_USER_ID, params);
};

這樣的話,接口易於維護,當接口有變更時,只需改動這一個地方,不須要改動其餘引用該接口的代碼。

十、公共方法記得添加註釋,按照jsDoc格式添加註釋。

十一、代碼的格式要規範,賦值運算符、邏輯運算符先後最好添加空格,賦值語句結束要有分號,尤爲是export導出一個變量,代碼的縮進保持一致,更容易閱讀。

努力學習,不斷總結中~

相關文章
相關標籤/搜索