天天看點

微信小程式開發規範文檔-JavaScript格式規範

前奏

約定JavaScript使用ES6标準開發

wxs(WeiXin Script)和JavaScript是不同的語言,有自己的文法,wxs請參考wxs文檔,這裡的規範僅針對js。

變量命名

關于變量命名,主流分為駝峰式命名和下劃線式命名兩大陣營。我們約定,統一使用駝峰式命名。

  • 推薦寫法

    let userId = 654321;

    function getUserInfo () {

    ....

    }

  • 不推薦寫法

    let user_id = 654321;

    function get_user_info () {

    ....

    }

分号

盡管現在JavaScript引擎知道該在什麼情況下自動添加分号,由于項目曆史原因和避免代碼壓縮時産生不必要的問題,我們約定使用分号。分号緊跟代碼的最後一個字元。

  • 推薦寫法

    let loading = -1;

  • 不推薦寫法

    let loading = -1 ;

逗号

逗号分割清單時,逗号放置在目前行的末尾。

  • 推薦寫法

    let bar = 1,

    foo = 2;

  • 不推薦寫法

    let bar = 1

    , foo = 2;

數組(或對象)的最後一個元素(或屬性)後面的逗号是拖尾逗号,示例:

let o = {
   a: 1,
   b: 2, // 拖尾逗号
 }
           

對于數組和對象,最後一個元素或屬性與右括号]或}不在同一行時,可以(但不要求)使用拖尾逗号;在同一行時,禁止使用拖尾逗号。

  • 推薦寫法

    let arr = [\'name\',

    \'age\',

    \'gender\',

    ]

    let o1 = {a: 1,b: 2};

    let o2 = {

    a: 1,

    b: 2,

    };

  • 錯誤寫法

    let arr = [\'name\',\'age\',\'gender\',]

    let o1 = {a: 1,b: 2,}

縮進

統一使用2個空格字元進行代碼縮進。

空格

操作符

操作符前後加一個空格字元。

  • 推薦寫法

    let a = 1 + 2;

  • 不推薦寫法

    let a = 1+2;

逗号

同一行内代碼用到逗号,逗号後面加一個空格字元,提高代碼可讀性。

  • 推薦寫法

    let bar = 1, foo = 2;

    let arr = [1, 2, 3, 4, 5];

  • 不推薦寫法

    let bar = 1,foo = 2;

    let arr = [1,2,3,4,5]

函數

函數聲明式聲明函數時,函數名與參數括号()連在一起,之間不加空格;參數括号()與函數體的左大括号{之間一個空格字元。

  • 推薦寫法

    function getInfo(userId) {

    ...

    }

  • 不推薦寫法

    function getInfo1 (userId) {

    ...

    }

    function getInfo2(userId){
      ...
    }
               
    函數字面量裡,關鍵字function與參數括号()之間一個空格字元,參數括号()與函數體的左大括号{之間一個空格字元。
  • 推薦寫法

    let getInfo = function (userId) {

    ...

    }

  • 不推薦寫法

    let getInfo1 = function(userId) {

    ...

    }

    let getInfo2 = function(userId){
      ...
    }
               
    函數調用時,禁止有空格。
  • 推薦寫法

    getInfo();

  • 錯誤寫法

    getInfo ();

對象字面量

對象字面量的屬性名和冒号:之間不能有空格字元,冒号:和屬性值之間一個空格字元。

  • 推薦寫法

    let o1 = { a: 1, b: 2, c: 3 }

    let o2 = {

    e: 5,

    f: 6,

    g: 7,

    }

  • 不推薦寫法

    let o1 = { a:1, b :2, c : 3}

    let o2 = {

    e:5,

    f :6,

    g : 7,

    }

    對象字面量在一行内時,左括号{和右括号}與代碼各間隔一個空格字元。

  • 推薦寫法

    let o1 = { a: 1, b: 2, c: 3 }

  • 不推薦寫法

    let o1 = {a: 1, b: 2, c: 3}

單行代碼

在單行代碼中使用空格。

  • 推薦寫法

    function foo() { return true }

    if (true) { return true }

  • 不推薦寫法

    function foo(){return true}

    if(true){return true}

代碼塊

大括号{}包裹起來的代碼叫代碼塊,示例:

{
  let userId = 654321;
}
           

代碼塊前統一加一個空格字元

  • 推薦寫法

    if (true) {

    return \'成功!\'

    }

    function getInfo() {
      ...
    }
               
  • 不推薦寫法

    if (true){

    return \'成功!\'

    }

    function getInfo(){
      ...
    }
               

計算屬性

在對象的計算屬性内,禁止有空格。

  • 推薦寫法

    obj[\'name\']

  • 不推薦寫法

    obj[\'name\' ]

    obj[ \'name\']

空行

空行對分離代碼邏輯有幫助,但過多的空行會占據太多的螢幕空間,影響代碼可讀性。我們約定,最大連續空行數為2。

  • 推薦寫法

    if(true) {

    console.log(\'成功!\');

    }

    function getUserInfo () {
      ...
    }
               
  • 不推薦寫法

    if(true) {

    console.log(\'成功!\');

    }

    function getUserInfo () {
      ...
    }
               

在非空檔案中,拖尾空行可以減少版本控制時的代碼沖突。

  • 推薦寫法

    function getUserInfo () {

    ...

    }

    // ↑上面一行是空行

  • 不推薦寫法

    function getUserInfo () {

    ...

    }

大括号{}風格

用來描述大括号{}與代碼塊相對位置的方法很多,如下:

  • 風格一

    if (true) {

    console.log(\'true\');

    } else {

    console.log(\'false\');

    }

  • 風格二

    if (true) {

    console.log(\'true\');

    }

    else {

    console.log(\'false\');

    }

  • 風格三

    if (true)

    {

    console.log(\'true\');

    }

    else

    {

    console.log(\'false\');

    }

    我們約定,使用風格一。