年前整理的Js规范
JavaScript編碼規范
?基本約定
? 每句代碼后(必須)加";"
? 變量:使用變量前必須聲明,采用駱駝峰的命名且首字母小寫, 變量聲明必須加var關鍵字,嚴格控制作用域;
? 常量:采用全大寫的命名,且單詞以_分割,常量定義單詞全部大寫,以下劃線連接,但不要用const關鍵字來聲明,如:SOME_CONSTANTS;常量通常用于ajax請求url,和一些不會改變的數據
? 使用Function進行類的定義,(不推薦)繼承,如需繼承采用成熟的類庫實現繼承
? 盡量不使用with關鍵字,容易造成作用域混亂;
? this僅用于類成員函數或對象中;
? 通用全局函數,特別是通用組件代碼應將業務邏輯放入閉包中,并通過“命名空間”將其引入;
? 若函數中使用到全局變量,則訪問全局變量時應使用window來引入
? 類中的成員變量使用構造函數來初始化;
? 除非是必須移除類的成員,否則析構函數中對成員的銷毀應通過將其設置為null,而不是用delete,因為重新賦值方式性能比用delete好;
? 避免通過prototype方式破壞內置對象原型鏈;
? 使用駝峰式命名變量和函數,如:functionNamesLikeThis, variableNamesLikeThis, ClassNamesLikeThis,namespaceNamesLikeThis;
? 私有成員變量和方法命名以下劃線開頭,如:var _this;
? 函數參數大于3個時,應以對象形式作為參數集傳遞;
? 禁止在代碼塊中聲明函數,錯誤的范例:if (true) {function foo() {}};
? 直接定義數組或對象,而不使用new關鍵字聲明,錯誤的范例:var a = new Array();var o = new Object();
? 使用單引號來定義字符串;
? 文件名必須全部用小寫,文件名分隔符用中劃線連接,版本連接符用實心點,合并文件的文件名連接符用下劃線,如:passport-core.min.js和reset-1.0_utils-1.0.css;
? 為獲取最大化的可移植性和兼容性,代碼中應使用標準中支持的方式來書寫代碼。
?基本約定
? 每句代碼后(必須)加";"
? 變量:使用變量前必須聲明,采用駱駝峰的命名且首字母小寫, 變量聲明必須加var關鍵字,嚴格控制作用域;
? 常量:采用全大寫的命名,且單詞以_分割,常量定義單詞全部大寫,以下劃線連接,但不要用const關鍵字來聲明,如:SOME_CONSTANTS;常量通常用于ajax請求url,和一些不會改變的數據
? 使用Function進行類的定義,(不推薦)繼承,如需繼承采用成熟的類庫實現繼承
? 盡量不使用with關鍵字,容易造成作用域混亂;
? this僅用于類成員函數或對象中;
? 通用全局函數,特別是通用組件代碼應將業務邏輯放入閉包中,并通過“命名空間”將其引入;
? 若函數中使用到全局變量,則訪問全局變量時應使用window來引入
? 類中的成員變量使用構造函數來初始化;
? 除非是必須移除類的成員,否則析構函數中對成員的銷毀應通過將其設置為null,而不是用delete,因為重新賦值方式性能比用delete好;
? 避免通過prototype方式破壞內置對象原型鏈;
? 使用駝峰式命名變量和函數,如:functionNamesLikeThis, variableNamesLikeThis, ClassNamesLikeThis,namespaceNamesLikeThis;
? 私有成員變量和方法命名以下劃線開頭,如:var _this;
? 函數參數大于3個時,應以對象形式作為參數集傳遞;
? 禁止在代碼塊中聲明函數,錯誤的范例:if (true) {function foo() {}};
? 直接定義數組或對象,而不使用new關鍵字聲明,錯誤的范例:var a = new Array();var o = new Object();
? 使用單引號來定義字符串;
? 文件名必須全部用小寫,文件名分隔符用中劃線連接,版本連接符用實心點,合并文件的文件名連接符用下劃線,如:passport-core.min.js和reset-1.0_utils-1.0.css;
? 為獲取最大化的可移植性和兼容性,代碼中應使用標準中支持的方式來書寫代碼。
總結
- 上一篇: 年前整理的Css规范
- 下一篇: 进程通信之飞鸽传书2007绿色版