JS程式碼規範

採山m0_46453807發表於2020-12-17

一、命名規範

1、駝峰式命名法由小(大)寫字母開始,後續每個單詞首字母都大寫。
按照第一個字母是否大寫,分為:
① Pascal Case 大駝峰式命名法:首字母大寫。eg:StudentInfo、UserInfo、ProductInfo
② Camel Case 小駝峰式命名法:首字母小寫。eg:studentInfo、userInfo、productInfo
2、變數命名
命名方法:小駝峰式命名法。
命名規範:字首應當是名詞。(函式的名字字首為動詞,以此區分變數和函式)
命名建議:儘量在變數名字中體現所屬型別,如:length、count等表示數字型別;而包含name、title表示為字串型別。
示例:

// 好的命名方式
var maxCount = 10;
var tableTitle = 'LoginTable';
 
// 不好的命名方式
var setCount = 10;
var getTitle = 'LoginTable';

3、函式命名
命名方法:小駝峰式命名法。
命名規範:字首應當為動詞。
命名建議:可使用常見動詞約定

示例:
// 是否可閱讀

function canRead() {
    return true;
}
 
// 獲取名稱
function getName() {
    return this.name;
}

4、常量
命名方法:名稱全部大寫。
命名規範:使用大寫字母和下劃線來組合命名,下劃線用以分割單詞。
命名建議:無。
示例:

var MAX_COUNT = 10;
var URL = 'http://www.baidu.com';

5、建構函式
介紹:在JS中,建構函式也屬於函式的一種,只不過採用new 運算子建立物件。
命名方法:大駝峰式命名法,首字母大寫。
命名規範:字首為名稱。
命名建議:無。
示例:

function Student(name) {
    this.name = name;
}
 
var st = new Student('tom');

6 類的成員
類的成員包含:
① 公共屬性和方法:跟變數和函式的命名一樣。
② 私有屬性和方法:字首為_(下劃線),後面跟公共屬性和方法一樣的命名方式。

function Student(name) {
    var _name = name; // 私有成員
 
    // 公共方法
    this.getName = function () {
        return _name;
    }
 
    // 公共方式
    this.setName = function (value) {
        _name = value;
    }
}
var st = new Student('tom');
st.setName('jerry');
console.log(st.getName()); // => jerry:輸出_name私有變數的值

二、程式碼註釋

1、JS支援兩種不同型別的註釋:單行註釋和多行註釋。
2、註釋引數

@param @argument 指定引數名和說明來描述一個函式引數
@returns 描述函式的返回值
@author 指示程式碼的作者
@deprecated 指示一個函式已經廢棄,而且在將來的程式碼版本中將徹底刪除。要避免使用這段程式碼
@see 建立一個HTML連結,指向指定類的描述
@version 指定釋出版本
@requires 建立一個HTML連結,指向這個類所需的指定類
@throws @exception 描述函式可能丟擲的異常的型別
{@link} 建立一個HTML連結,指向指定的類。這與@see很類似,但{@link}能嵌在註釋文字中
@fileoverview 這是一個特殊的標記。如果在檔案的第一個文件塊中使用這個標記,則指定該文件塊的餘下部分將用來提供這個檔案的概述
@class 提供類的有關資訊,用在建構函式的文件中
@constructor 明確一個函式是某個類的建構函式
@type 指定函式的返回型別
@extends 指示一個類派生了另一個類。JSDoc通常自己就可以檢測出這種資訊,不過,在某些情況下則必須使用這個標記
@private 指示一個類或函式是私有的。私有類和函式不會出現在HTML文件中,除非執行JSDoc時提供了–private命令列選項
@final 指示一個值是常量值。要記住JavaScript無法真正保證一個值是常量
@ignore JSDoc忽略有這個標記的函式

示例:

/**
 * 將助手1.0 2.0 辦理項 情緒禁語的推薦話術渲染在下滑塊中
 * @param {object} msg 用於獲取suffix引數(必填)
 * @param {string} id 話術推送渲染的唯一id(必填)
 * @param ResultInfo 需要展示的話術(必填)
 * @param mainIntentionName:助手1.0意圖名稱(非必填)
 * @param flowName:助手2.0預處理名稱(非必填)
 * @author 王玥 2020/12/10
 */

參考部落格:關於註釋引數 https://blog.csdn.net/b7410852963/article/details/106502730/
關於程式碼開發規範 https://www.cnblogs.com/polk6/p/4660195.html#Menu3-FrameDev

相關文章