前端代碼規(guī)范梳理

代碼規(guī)范梳理(前端)

為協(xié)調(diào)協(xié)同開發(fā),盡量保持代碼整體的一致性以及可讀性以及可維護(hù)性,根據(jù)經(jīng)驗(yàn)對(duì)相關(guān)項(xiàng)目進(jìn)行梳理
Html篇

  1. html文件必須申明:<!DOCTYPE html>
  2. 文檔編碼如無特殊要求,使用<meta charset="UTF-8">
  3. 根據(jù)相應(yīng)要求,引入其他meta 比如:
<!-- 聲明文檔的兼容模式:指示IE以目前可用的最高模式顯示內(nèi)容-->
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
  1. 使用link引入外部css文件到頁面的head中。
    注意:一般我們不適用@import來引入外部css文件。

  2. 使用script將js文件引入,并置于body底部,這時(shí)js文件會(huì)最后加載,html會(huì)最先加載,用戶體驗(yàn)會(huì)更好。(注意:并不是所有的js文件都要放置于body的底部,如當(dāng)我們需要使用js文件動(dòng)態(tài)修改meta元素內(nèi)容時(shí),需要將js文件引入到head標(biāo)簽中。
    參考: https://blog.csdn.net/qizhiqq/article/details/52584620
    放在底部哪里?
    許多人認(rèn)為只要放在底部了,無論是“body標(biāo)簽閉合之前”還是在“body標(biāo)簽閉合之后”都是一樣的,其實(shí)還是有差別的,因?yàn)閺腍TML2.0起放在“body標(biāo)簽閉合之后”就是不合標(biāo)準(zhǔn)的。之所以但是瀏覽器卻不會(huì)報(bào)錯(cuò),是因?yàn)槿绻凇癰ody標(biāo)簽閉合之后”后再出現(xiàn)script或任何元素的開始標(biāo)簽,都是parse error,瀏覽器會(huì)忽略之前的</body>,即視作仍舊在body內(nèi)。
    所以實(shí)際效果和寫在“body標(biāo)簽閉合之前”之前是沒有區(qū)別的。
    所以,只要是讓瀏覽器做了多余的事都是不好的,雖然差別細(xì)微,但是咱們還是按照標(biāo)準(zhǔn)來,放在“body標(biāo)簽閉合之前”。

  3. 語義化編寫代碼,即在瀏覽器兼容的前提下勁量使用語義化的標(biāo)簽(如果需要兼容ie參考:https://blog.csdn.net/m838115837/article/details/49535933)

  4. 一個(gè)標(biāo)簽的className不要過多,使用className進(jìn)行輔助語義化模塊劃分,class,id命名使用小駝峰,中間練接'-' 表示層級(jí);頁面id不能重復(fù),盡量避免使用id;

  5. 元素嵌套,以正確的嵌套規(guī)則嵌套,盡量避免內(nèi)聯(lián)元素嵌套塊狀元素;

  6. 結(jié)構(gòu)上如果可以并列書寫,就不要嵌套。
    如果可以寫成<div></div><div></div>那么就不要寫成<div><div></div></div>

  7. 元素沒有值的屬性必須使用自己的名稱做為值(checked、disabled、readonly、selected等等

  8. 正確閉合標(biāo)簽且必須閉合。

  9. 相應(yīng)注釋,模塊注釋,說明等需要的注釋寫在相應(yīng)的代碼的上方

  10. 頁面實(shí)現(xiàn)完成提交前記得代碼格式化

css篇
通常,一個(gè)項(xiàng)目我們只引用一個(gè)CSS,但是對(duì)于較大的項(xiàng)目,我們需要把CSS文件進(jìn)行分類。
我們按照CSS的性質(zhì)和用途,將CSS文件分成“基礎(chǔ)樣式”、“模塊(公共)樣式”,并以此順序引用(按需求決定是否添加版本號(hào))。

<!--base:基礎(chǔ)樣式,用來瀏覽器默認(rèn)樣式reset,網(wǎng)站基類樣式設(shè)置-->
<link rel="stylesheet" href="../css/base.css">
<link rel="stylesheet" href="../css/common.css">
  1. 使用類選擇器,放棄ID選擇器
  2. 分類的命名方法:使用語義化命名,層級(jí)已'-'鏈接,禁止無腦層級(jí)嵌套;
  3. 可以簡(jiǎn)寫的命名簡(jiǎn)寫比如:btn(要讓人看的懂哦?)
<!--以個(gè)人信息模塊為例,此模塊中包含一個(gè)個(gè)人信息展示,以及相應(yīng)新增按鈕-->
.btn-submit{  //功能類命名
    
}
.btn-close {
    
}

.infoWrap {  //模塊小駝峰命名
    xxxx:xxx;
}
.infoWrap-intro{  //以橫杠的形式表示層級(jí)
    
}
.parent .child {  //不推薦,層級(jí)竟可能的少,不亂用.盡量寫在第一層級(jí)上少量標(biāo)簽元素的也可以不去單獨(dú)追加className,而使用嵌套
    
}

  1. 顏色代碼書寫:有些顏色代碼是可以縮寫的,我們就盡量縮寫吧,提高用戶體驗(yàn)為主 color:#ffffff --> color:#fff; color:#eebbcc -->color:#ebc;顏色代碼小寫
  2. css 書寫順序:
    • 位置屬性(position, top, right, z-index, display, float等);
    • 大小(width, height, padding, margin);
    • 文字系列(font, line-height, letter-spacing, color- text-align等);
    • 背景(background, border等);
    • 其他(animation, transition等)

備注:以大模塊做前綴,可以很好的避免樣式污染,以及提高語義化

JavaScript 篇

  1. 避免全局命名空間污染;es6開發(fā)使用相應(yīng)的const,let;
  2. 使用var 定義時(shí),以閉包包裹
(function(window){
  'use strict';
  var x = 10,y = 100;
 
})(window);

  1. 盡量以對(duì)象形式分割模塊
  2. js命名:
    • 命名:整體以小駝峰方式命名
    • 私有(保護(hù))成員:必須以下劃線_開頭
    • 常量名:必須使用全部大寫的下劃線命名法,如IS_DEBUG_ENABLED
    • 布爾變量:boolean類型的應(yīng)當(dāng)使用is、has等起頭,表示其類型,如:isClose,hasOpen
    • 方法名:'fn'前綴,如fnCheckIsUpdate,使用語義化簡(jiǎn)介的英文描述方法,函數(shù)名應(yīng)當(dāng)用動(dòng)賓短語
    • 類名命名:類名應(yīng)當(dāng)用名詞,如:const productList =[]; const customerInfo ={};let isNewCustomer =false;單獨(dú)的變量一般統(tǒng)合到一個(gè)對(duì)象里,避免申明過多的變量
    • 代碼注釋:注釋要盡量簡(jiǎn)單,清晰明了。著重注釋的意思,對(duì)不太直觀的部分進(jìn)行注解:
  3. 代碼書寫:變量必須先申明后調(diào)用,代碼整體風(fēng)格,盡量的變量申明在文件的開頭(個(gè)別變量可能編寫函數(shù)時(shí)才用到1兩次,可以寫在調(diào)用函數(shù)上方處), 文件的尾部書寫自運(yùn)行函數(shù);中間定義各種函數(shù);
  4. 函數(shù)的申明:函數(shù)以函數(shù)申明的方式進(jìn)行申明: function fnName(fnPrama){},盡量避免用函數(shù)表達(dá)式進(jìn)行申明:var fnName = function(){}

UI 篇

  1. 設(shè)定web/app的基色,內(nèi)部顏色保持盡量統(tǒng)一,功能顏色劃分準(zhǔn)確,顏色類盡量別超過5個(gè);
  2. 出基元件的類型,樣式,顏色等標(biāo)注,包括但不局限:表單,搜索框,按鈕,列表,字體顏色,通用字體大小等等
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容