優秀的編碼習慣
此文為本人記錄文,記錄在開發過程中一些注意事項和他人建議,不定時更新。
(適用於:初踏入前端開發行業人群)
1、註釋
html中:
<body>
<!--header一般用於LOGO,導航nav body用於頁面的主要部分 footer底部,如友情連結,網站基本資訊 goTop有的網頁有跳轉到最上面的模組-->
<!-- start header-->
<!-- end header-->
<!-- start body-->
<!-- end body-->
<!-- start goTop-->
<!-- start footer-->
</body>
css中也同樣需要標註當前是某個模組
每個模組註釋
/*
XXXXXXX(功能)
XXX(人名)
2015-11-11(時間)
*/
2、css放在HTML上面,JS程式碼放在HTML下面。
避免載入html時出現無樣式。先將網頁呈現給使用者,再來載入頁面的指令碼。避免JS阻塞網頁的呈現導致頁面的空白。
3、程式碼格式化(同級進行對齊,一般縮排用TAB鍵)
4、行為操作相關
例如全選按鈕,通過判斷全選按鈕是否被選擇來實現全選和取消,而不要通過一個變數。
5、需要使用變數時
不要直接if(glength==2)
而是
var startlength=2;
if( glength == startlength ) 這樣判斷中含有意義,有利於維護
6、變數命名時以他的英文或相關單詞命名,讓人一看就知道這個變數的作用。
7、if(){
}
或if()
{
}
兩種寫法都可以,但是同個專案中,程式碼要統一
8、不要放一堆全域性變數在外面,如果要使用全域性變數,應使用不同名稱空間。
(在JS中,一切都是物件)
var obj1={
a:1,
b:2,
};
多個JS時:
obj1.str={};
obj1.str.a=2;
obj1.str.b=2;
obj1.str1={};
obj1.str1.a=4;
(具體名稱空間用法看本人另一篇文章《JS中避免命名衝突》)
7、CSS檔案或JS檔案,採用common.css+html名.css/common.js+html名.css。
8、有多級程式碼時,按層級讀取。
通常都是先收起,然後按照使用者開啟哪個部分,再載入哪個部分,
9、動態載入僅載入需要經常變化的內容,對於固定的內容,直接使用HTML。動態載入會導致速度變慢。
10、不要套多標籤巢狀,規範巢狀行為。
(具體檢視本人另一篇文章《HTML標籤巢狀規則》)
11、對於規則的資料,使用表格,增刪改查方便,有利於後臺人員開發。
12、JS動態生成的元素,繫結事件需要on。
JQ1.7版本以前使用live(),已被棄用。
無效時,測試:
$("body").on("click",".cancel",function(){
alert(1);
alert(this.index());
})
一般原因,元素的所在範圍錯誤。
注意:我們在查詢某個元素的時候,$("#ulid")的範圍越小越容易被找到。
但是,不能選擇後來才生成元素作為判斷的範圍,否則瀏覽器會找不到。
13、專案完成後進行程式碼的壓縮。
JS壓縮工具:Packer YUI Compressor
做法:去掉空格和換行,去掉註釋,將複雜變數名替換成簡單變數名。
14、a標籤的寫法,需要加上target屬性
<a href="#" target="_self"></a>
_blank | 在新視窗中開啟被連結文件。 |
_self | 預設。在相同的框架中開啟被連結文件。 |
_parent | 在父框架集中開啟被連結文件。 |
_top | 在整個視窗中開啟被連結文件。 |
framename | 在指定的框架中開啟被連結文件。 |
有時候也加title屬性 <a href="#" target="_self" title="登入">登入</a>
title滑鼠上移時,顯示該連結的文字註釋(用在登入註冊?)
15、javascript:void(0)/javascript:;
當某個連結,需要指定其他事件操作,而不要跳轉的時候
href="javascript:void(0);"
如: <a href="javascript:void(0);" title="線上客服">線上客服</a>
16、HTML 中最好不要將無內容元素的標籤閉合,例如:使用 <br> 而非 <br />
17、一般來說,資料存在一個方法內部,使用完了就扔掉。
18、input搜尋框,如果不打算提交和重新整理,不要用form。