[TOC]
# 命名
1. 變量命名只允許有字母、數字、`$`和`_`下劃線。
2. javascript 的變量和其他語法元素名都是區分大小寫。
3. 使用jQuery對象時候,使用`$var`的形式,讓人很明白這是jQuery的對象(雖然有些庫也會使用`$`),雖然W3school不推薦:變量也能以 $ 和 _ 符號開頭(不過我們不推薦這么做)
4. [淺談 JavaScript 編程語言的編碼規范](http://www.ibm.com/developerworks/cn/web/1008_wangdd_jscodingrule/)
# 遵行慣用法:
1. 注釋符號 `//` 后應該空一格;
2. 防止變量提升,應先聲明后使用(JSHint 會提醒出 `_height` 存在變量提升以及定義后未使用的錯誤);
3. 不應該使用硬編碼,并且重復幾次( ID 后綴名可以定義到常量里,用大寫字母);
4. 不應該有兩個配置屬性,含義不明(`this.opts` 和 `this._options`);
5. 若兩次以上引用同一對象的屬性,應該定義到局部變量再引用(`var options = this._options`);
6. 不應該同時使用兩種屬性命名風格(`colModel` 和 `table_body`);
7. 局部變量名應該盡可能短,而方法名應該盡可能完整(不應該同時即有 fromatTpl 又有 parseTemplate);
8. 局部變量名不需要用下劃線開頭,僅對象私有屬性和私有方法有此必要;變量名不需要帶類型屬性(`_thdoms` 叫 `ths` 就好);
9. 使用 JavaScript 時,for 循環基本可以避免(比如 jQuery 有 `$.each`, `$.map`,`$.filter`, `$.grep` 等等高階函數可用);
10. jQuery 對象名習慣以 `$` 開頭,以便區分 DOM 對象;jQuery 查詢應盡量使用 context (如 `this.$table = $('table', this.$element)` );
11. jQuery DOM 操作和原生 DOM 操作不應該混用(已經使用 jQuery 的情況,就應該堅持使用 jQuery 來操作 DOM,避免丑陋的原生操作);
12. DOM 元素構造出來,也不應該再到文檔中查詢一遍了(圖上的構造太復雜,一眼真看不懂);
*****
Code Review 把程序寫正確還只是跨出了第一步。把代碼交給你的同事和朋友 review,這是學習經驗、共同提高 最快的辦法。