通用約定
註釋
原則
- As short as possible(如無必要,勿增註釋):儘量提高代碼本身的清晰性、可讀性。
- As long as necessary(如有必要,儘量詳盡):合理的註釋、空行排版等,可以讓代碼更易閱讀、更具美感。
單行註釋
必須獨佔一行。// 後跟一個空格,縮進與下一行被註釋說明的代碼一致。
多行註釋
避免使用 /…/ 這樣的多行註釋。有多行註釋內容時,使用多個單行註釋。
函數/方法註釋
函數/方法註釋必須包含函數說明,有參數和返回值時必須使用註釋標識。;
參數和返回值註釋必須包含類型信息和說明;
當函數是內部函數,外部不可訪問時,可以使用 @inner 標識;
文件註釋
文件註釋用於告訴不熟悉這段代碼的讀者這個文件中包含哪些東西。 應該提供文件的大體內容, 它的作者, 依賴關係和兼容性信息。如下:
命名
變量, 使用 Camel 命名法。
私有屬性、變量和方法以下劃線 _ 開頭。
常量, 使用全部字母大寫,單詞間下劃線分隔的命名方式。
函數, 使用 Camel 命名法。
函數的參數, 使用 Camel 命名法。
類, 使用 Pascal 命名法
類的 方法 / 屬性, 使用 Camel 命名法
枚舉變量 使用 Pascal 命名法。
枚舉的屬性, 使用全部字母大寫,單詞間下劃線分隔的命名方式。
由多個單詞組成的 縮寫詞,在命名中,根據當前命名法和出現的位置,所有字母的大小寫與首字母的大小寫保持一致。
命名語法
類名,使用名詞。
函數名,使用動賓短語。
boolean 類型的變量使用 is 或 has 開頭。
Promise 對象用動賓短語的進行時表達。
接口命名規範
可讀性強,見名曉義;
儘量不與 jQuery 社區已有的習慣衝突;
儘量寫全。不用縮寫,除非是下面列表中約定的;(變量以表達清楚為目標,uglify 會完成壓縮體積工作)
True 和 False 布爾表達式
類型檢測優先使用 typeof。對象類型檢測使用 instanceof。null 或 undefined 的檢測使用 == null。
下面的布爾表達式都返回 false:
- null
- undefined
- ‘’ 空字符串
- 0 數字0
但小心下面的, 可都返回 true:
- ‘0’ 字符串0
- [] 空數組
- {} 空對象
不要在 Array 上使用 for-in 循環
for-in 循環只用於 object/map/hash 的遍歷, 對 Array 用 for-in 循環有時會出錯. 因為它並不是從 0 到 length - 1 進行遍歷, 而是所有出現在對象及其原型鏈的鍵值。
二元和三元操作符
操作符始終寫在前一行, 以免分號的隱式插入產生預想不到的問題。
條件(三元)操作符 (?:)
三元操作符用於替代 if 條件判斷語句。
&& 和 ||
二元布爾操作符是可短路的, 只有在必要時才會計算到最後一項。
閱讀更多 看到他請叫他快去學習 的文章