前端代碼規范(結合自己團隊實際需要總結)


一、一般規范

1、命名規范

(1)以英文命名,避免出現拼音命名。

(2)文件命名全小寫,如需要分割以-連接。如:my-filter.js

(3)css 選擇器命名分割以-連接。如:.main-box-header

2、代碼縮進

1)以TAP為一次縮進。

3、代碼注釋

(1)關鍵步驟必須寫注釋。

(2)不要寫你的代碼都干了些什么,而要寫你的代碼為什么要這么寫,背后的考量是什么。當然也可以加入所思考問題或是解決方案的鏈接地址。

4、代碼檢查 使用JSLintJSHintjavascript 代碼進行檢查。

二、HTML規范

1、文檔類型:使用HTML5文檔類型聲明。<!DOCTYPE html>

2、結構(HTML)、表現(CSS)、行為(JS)代碼分離.

HTML文件中只包含標簽,將表現放入樣式表中,將所有動作行為放入腳本文件中。在HTML<head>中引入樣式文件,在</body>之前引入腳本文件。

3、<meat>聲明

<meta name="viewport" content="width=device-width, initial-scale=1.0"/>

讓網頁寬度適應屏幕寬度,多用於移動端。

<meta http-equiv="X-UA-Compatible"content="IE=edge,chrome=1" />

<meta name="renderer" content="webkit|ie-comp|ie-stand">

讓360瀏覽器默認進入極速模式

 

4、<img> 標簽必須添加alt屬性。

在圖像無法顯示時的替代文本。在網速慢、圖片src屬性錯誤、瀏覽器禁用圖片或是屏幕閱讀器中alt屬性很重要,且利於SEO

5、ID和錨點

頁面中重要的部分,如:頁頭、導航、主體、頁腳等加上ID

單選、復選中為<input >ID並在<lable>標簽中將for指向此ID

例如:

<input  type="checkbox" id="allowTrace" value="manual">

<label for="allowTrace">

    允許trace

</label>

 

三、CSS規范

1、Css選擇器層級

錯誤示范:

.content_box form ul li {height:30px;margin:10px;}

 

錯誤原因:樣式指向不精准,使得受影響的標簽范圍太大,當多個頁面同時引用同一樣式表時,容易出現不可預見的問題。

#final #content .con_border .system_time .default_checkbox {}

錯誤原因:選擇器太多,權重太高,不利於后期維護。

.access_control > ul > li > ul > li > input{
    margin-right:10px;
}

錯誤原因:選擇器太多,影響運行效率,不利於樣式復用。盡量避免使用后代選擇器。

建議:層級盡量不超過三級,防止出現權重太高,不利於后期的覆蓋與維護。

2、!important

盡量避免使用!important,因為這是css里面的終極大招,用多了傷元氣。

3、合理的避免使用ID選擇器。

一般情況下ID不應被應用於樣式表中。因為ID樣式不能被復用且每個頁面中只能使用一次ID。還有一個原因是ID選擇器權重很高。

4、盡量避免使用元素選擇器

錯誤示范:

form ul li em{

}

推薦寫法:

.content .title{

}

5、css 書寫順序

(1)位置屬性(position, top, right, z-index, display, float)
(2)大小(width, height, padding, margin)

(3)文字系列(font, line-height, letter-spacing, color- text-align)
(4)背景(background, border)
(5)其他(animation, transition)

6、縮寫屬性

例如:margin

margin-top:1px;

margin-right:2px;

margin-bottom:3px;

margin-left:4px;

 簡寫:

margin:1px 2px 3px 4px;

 

例如:背景

background-image:url(background.gif);

background-repeat:no-repeat;

background-attachment:fixed;

background-position:0 0;

 

縮寫:

background:#f00 url(background.gif) no-repeat fixed 0 0;

 

7、顏色值使用小寫的十六進制數字

不推薦:

color:#FF22AA;

推薦:

color:#f2a;

 

四、JAVASCRIPT規范

1、變量命名:駝峰命名法

例如:userName,passWorld;

2、===== 

總是使用 === 精確的比較操作符,避免在判斷的過程中,由 JavaScript 的強制類型轉換所造成的困擾。

如果你使用 === 操作符,那比較的雙方必須是同一類型為前提的條件下才會有效。 在只使用 == 的情況下,JavaScript 所帶來的強制類型轉換使得判斷結果跟蹤變得復雜。

3、變量聲明

使用 var 來聲明變量。原則上不建議使用全局變量如不指定 var,變量將被隱式地聲明為全局變量,這將對變量難以控制。如果沒有聲明,變量處於什么定義域就變得不清(可以是在 Document Window 中,也可以很容易地進入本地定義域)。所以,請總是使用 var 來聲明變量。

4、全局污染

除了使用var聲明變量外,還可以使用匿名函數包裹代碼防止全局命名空間被污染。

(function(){

     // Code goes here

}());

(function(log, w, undefined){
var x = 10, y = 100;
log((w.x
=== undefined) + ' ' + (w.y === undefined)); }(window.console.log, window));

5、eval 函數(魔鬼)

eval() 不但混淆語境還很危險,總會有比這更好、更清晰、更安全的另一種方案來寫你的代碼,因此盡量不要使用 evil 函數。

6、字符串拼接

  按一定長度截斷字符串,並使用 + 運算符進行連接。分隔字符串盡量按語義進行,如不要在一個完整的名詞中間斷開。特別的,對於 HTML 片段的拼接,通過縮進,保持和 HTML 相同的結構。

var html = ''

    + '<article>'

    +     '<h1>Title here</h1>'

    +     '<p>This is a paragraph</p>'

    +     '<footer>Complete</footer>'

    + '</article>';

var html = [

    '<article>',

        '<h1>Title here</h1>',

        '<p>This is a paragraph</p>',

        '<footer>Complete</footer>',

    '</article>'

];

html = html.join('');

7、對有序集合進行遍歷時,緩存length

雖然現代瀏覽器都對數組長度進行了緩存,但對於一些宿主對象和老舊瀏覽器的數組對象,在每次 length 訪問時會動態計算元素個數,此時緩存 length 能有效提高程序性能。

for (var i = 0, len = elements.length; i < len; i++) {
 
    var element = elements[i]; 
    // ...... 
}

 

 注:本文引用《前端代碼基礎編寫規范》v1.1

  參考百度前端JavaScript編碼規范https://github.com/ecomfe/spec/blob/master/javascript-style-guide.md

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM