15個簡單的JS編碼標準讓你的代碼更整潔

做者 | Daniel Andersonjavascript

本文最初發佈於 Medium 網站,經原做者受權後翻譯和分享。java

編碼標準能夠幫助如下方面:

  • 保持代碼一致
  • 易於閱讀和理解
  • 易於維護

下面的編碼標準是我對上述幾點有幫助的見解。git

1. 比較時使用 === 代替 ==

這很重要,由於JavaScript是一種動態語言,所以使用==可能會給您帶來意想不到的結果,由於它容許類型不一樣。es6

Fail:github

if (val == 2)
複製代碼

Pass:web

if (val === 2)
複製代碼

2. 永遠不要使用 var,使用 let 來代替

使用 let 將有助於避免 JavaScript 中各類 var 引發的做用域問題。app

Fail:函數

var myVar = 10;
複製代碼

Pass:網站

let myVar = 10;
複製代碼

3. 使用 const 代替 let

這阻止了開發人員嘗試更改不該該作的事情,而且確實有助於提升可讀性。編碼

Fail:

let VAT_PERCENT = 20;
複製代碼

Pass:

const VAT_PERCENT = 20;
複製代碼

4. 始終使用分號(;)

儘管這在 JavaScript 中是可選的,並不像其它語言同樣須要分號做爲語句終止符。可是使用 ; 有助於使代碼保持一致。

Fail:

const VAT_PERCENT = 20;
let amount = 10
return addVat(amount, vatPercent)
複製代碼

Pass:

const vatPercent = 20;
let amount = 10;
return addVat(amount, vatPercent);
複製代碼

5. JavaScript中的命名約定

  • let 應該使用駝峯命名。

  • const 若是在文件的頂部使用大寫的蛇形命名法。若是不在文件頂部,請使用駝峯命名。

  • class 應該是帕斯卡命名法:MyClass

  • functions 函數應該是駝峯命名法:myFunction

6. 拼接字符串時使用模板字符串

模板字符串中容許嵌入表達式。

Fail:

let fullName = firstName + " " + lastName;
複製代碼

Pass:

let fullName = `${firstName} ${lastName}`;
複製代碼

7. 儘量使用ES6箭頭函數

箭頭函數是編寫函數表達式的更簡潔的語法。

Fail:

var multiply = function(a, b{
  return a* b;
};
複製代碼

Pass:

const multiply = (a, b) => { return a * b};
複製代碼

8. 始終在控制結構周圍使用大括號

全部控制結構都必須使用花括號(例如,ifelsefordowhile等),這樣後期維護時,不容易出錯。

Fail:

if (valid)
   doSomething();
if (amount > 100
    doSomething();
else if(amount > 200)
    doSomethingElse();
複製代碼

Pass:

if (valid) {
   doSomething();
}
if (amount > 100) {
   doSomething();

else if(amount > 200) {
    doSomethingElse();
}
複製代碼

9. 確保大括號從同一行開始,中間有空格

Fail:

if (myNumber === 0)
{
    doSomething();
}
複製代碼

Pass:

if (myNumber === 0) {
    doSomething();
}
複製代碼

10. 嘗試減小嵌套

if 內的 if 會變得混亂而且很難閱讀。有時你可能沒法解決問題,可是能夠好好卡看看代碼結構,看看是否能夠改進。

Fail:

if (myNumber > 0) {
  if (myNumber > 100) {
       if (!hasDiscountAlready) {
           return addDiscountPercent(0);
       } else {
           return addDiscountPercent(10);
       }
  } else if (myNumber > 50) {
    if (hasDiscountAlready) {
       return addDiscountPercent(5);
    }
  } else {
    if (!hasDiscountAlready) {
      return addDiscountPercent(0);
    } else {
      return addDiscountPercent(1);
    }
  }
else {
     error();
}
複製代碼

Pass:

if (myNumber <= 0) {
   return error;
}
if (!hasDiscountAlready) {
    return addDiscountPercent(0);
}
if (myNumber > 100) { 
    return addDiscountPercent(10);
}
if (myNumber > 50) { 
    return addDiscountPercent(5);
}
return addDiscountPercent(1);
複製代碼

經過上面的示例能夠看出,減小嵌套以後,會變得容易閱讀。

11. 儘量使用默認參數

JavaScript 中,若是你在調用函數時沒有傳遞參數,則它的值就是 undefined

Fail:

myFunction(a, b) {
  return a + b;
}
複製代碼

Pass:

myFunction(a = 0, b = 0) { 
   return a + b;
}
複製代碼

12. `Switch` 語句應使用 `break` 並具備 `default`

我一般會嘗試不使用 switch 語句,可是你確實想使用它,請確保每一個條件都 break ,並寫了 defalut

Fail:

switch (myNumber)
{
  case 10
   addDiscountPercent(0);
  case 20
   addDiscountPercent(2);
  case 30:
   addDiscountPercent(3);
}
複製代碼

Pass:

switch (myNumber)
{
  case 10
    addDiscountPercent(0);
    break;
  case 20
    addDiscountPercent(2);
    break;
  case 30:
    addDiscountPercent(3);
    break;
  default
    addDiscountPercent(0);
    break;
}
複製代碼

13. 不要使用通配符導入

Fail:

import * as Foo from './Foo';
複製代碼

Pass:

import Foo from './Foo';
複製代碼

14. 使用布爾值的快捷方式

Fail:

if (isValid === true)
if (isValid === false)
複製代碼

Pass:

if (isValid)
if (!isValid)
複製代碼

15. 嘗試避免沒必要要的三元語句

Fail:

const boo = a ? a : b;
複製代碼

Pass:

const boo = a || b;
複製代碼

總結

任何語言的編碼標準均可以真正幫助提升應用程序的可讀性和可維護性。若是你在團隊中工做,那麼一件很難的事情就是強制執行編碼標準。這裏有一些建議能夠幫助你:

  • 代碼審查,逐行Pass代碼。
  • 整理或使用某種代碼分析器
  • 建立新內容時,讓大家的一位高級開發人員初始化,其餘開發人員可使用該代碼做爲指導。

原文連接: https://medium.com/javascript-in-plain-english/19-simple-javascript-coding-standards-to-keep-your-code-clean-7422d6f9bc0

好嘛,若是看到這裏,說明是真愛了。要不要給個人 Github 增長一個 star。

若有翻譯不當的地方,多多包涵,歡迎在評論區指正~

關注公衆號,加入技術交流羣

相關文章
相關標籤/搜索