編碼規范(前端)

文章目錄

  • 1. 文檔說明
    • 1.1 編制說明
    • 1.2 名詞解釋
  • 2.前端研發規范
    • 2.1 HTML編碼規范
      • 2.1.1 文檔類型
      • 2.1.2 語言
      • 2.1.3 元數據
      • 2.1.4 資源加載
      • 2.1.5 頁面標題
      • 2.1.6 編碼風格
      • 2.1.7 標簽
      • 2.1.8 屬性
      • 2.1.9 語義化
    • 2.2 CSS編碼規范
      • 2.2.1 文件引用
      • 2.2.2 命名-組成元素
  • 知識點

1. 文檔說明

1.1 編制說明

軟件行業的高速發展,對軟件開發者的綜合素質要求越來越高,不僅僅是編程知識點,其他維度知識點也會影響最后的交付質量,本文檔以開發前端項目角度,詳細描寫了前端的代碼規范,分別從HTML、CSS、JavaScript、TypeScript、四個方面入手,并且每個章節進行了詳細劃分,方便讀者能快速定位,規范自己的代碼,提高項目質量。

1.2 名詞解釋

序號名詞釋義
1JavaScript(通常編寫為JS)是一種高級的,解釋型的編程語言。支持面向對象設計,函數式編程,以及指令式編程。
2圈復雜度軟件源碼某部分發圈復雜度就是這部分代碼中線性無關路徑的數量 eg:如果一段源碼中不包含控制流語句(條件或決策點),那么這段代碼的圈復雜度為1,因為這段代碼中只會有一條路徑;如果一段代碼中僅包含一個if語句,且if語句僅有一個條件,那么這段代碼的圈復雜度為2;包含兩個嵌套的if語句,或是一個if語句有兩個條件的代碼塊的圈復雜度為3。
3認知復雜度認知復雜度分數根據三個基本規則進行評估: 忽略允許將多個語句易于理解地簡寫成一個的情況在代碼線性流程中的每一次中斷都增加(+1)(復雜度)斷流結構嵌套時增加(復雜度)

2.前端研發規范

2.1 HTML編碼規范

2.1.1 文檔類型

1)【強制】使用HTML5 DOCTYPE。

//<!DOCTYPE html>
<html>
</html>

2.1.2 語言

1)【推薦】指定html標簽上的lang屬性。

<html lang="zh-CN"><!--...-->
</html>

2.1.3 元數據

1)【推薦】使用UTF-8字符編碼。
聲明一個明確的字符編碼,可以讓瀏覽器更快更高效地確定適合網頁內容的渲染方式。
由于歷史原因,不同瀏覽器采用了不同的字符編碼。但對于新業務,如無特殊要求,統一使用UTF-8字符編碼,以便統一。
在HTML中使用<meta charset="utf-8:/>聲明文檔

<head><meta  charset="utf-8" />
</head>

2)【推薦】頁面提供給移動設備使用時,需設置viewport。

2.1.4 資源加載

1)【推薦】引入CSSJavaScript時無需指定type。根據HTML5規范,引入CSSJavaScript時通常不需要指明type,因為text/css和text/javascript分別是他們的默認值。
2)【推薦】在head標簽內引入CSS,在body結束標簽前引入JS。在<body></body>中指定外部樣式表和嵌入式樣式塊可能會導致頁面的重排和重繪,對頁面的渲染造成影響。因此,一般情況下,CSS應在<head></head>標簽里引入。

2.1.5 頁面標題

1)【強制】頁面需要指定title標簽,有且僅有1個。

2.1.6 編碼風格

1)【推薦】統一使用2個空格縮進,不要使用4個空格縮進或tab縮進。
2)【強制】在HTML注釋代碼中,不允許出現任何敏感信息。
3)【推薦】單行注釋,需在注釋內容和注釋符之間需留有一個空格,以增強可讀性。
4)【推薦】多行注釋,注釋符單獨占一行,注釋內容2個空格縮進。

2.1.7 標簽

1)【強制】標簽名統一使用小寫。

<!-- bad -->
<H1>Hello,world!</H1>
<!-- good -->
<h1>Hello,world!</h1>

2)【推薦】不要省略自閉合標簽結尾處的斜線,且斜線前需留有一個空格。

<!-- bad -->
<meta name = "viewport" content="width=device-width,initial-scale=1.0">
<img src="images/foo.png" alt="foo"><!-- good -->
<meta name = "viewport" content="width=device-width,initial-scale=1.0" />
<img src="images/foo.png" alt="foo" />

2.1.8 屬性

1)【強制】屬性值使用雙引號,不要使用單引號。
2)【推薦】不要為Boolean屬性添加取值。
XHTML需要每個屬性聲明取值,但是HTML5并不需要。一個元素中Boolean屬性存在即表示取值true,不存在則表示取值false。
3)【推薦】自定義屬性的命名:以data-為前綴。

2.1.9 語義化

1)【參考】盡量根據語義使用HTML標簽。

2.2 CSS編碼規范

2.2.1 文件引用

1)【強制】一律使用link的方式調用外部樣式。
2)【推薦】不要在<style>塊中使用@import;不要在頁面中使用<style>塊。

2.2.2 命名-組成元素

1)【強制】命名必須由字母、中劃線或數字組成且不能以數字或中劃線開頭。
2)【強制】不允許使用拼音與英文的混合命名,更不允許直接使用中文的方式;禁止同一個含義的內容,在同一個應用中出現多種不同的單詞與翻譯。

知識點

  1. map用于構建一個新數組,單純想遍歷數組應使用forEach
  2. copy = {...original,c:3};取代copy = Object.assign(original,{c:3});
  3. 將類數組結構轉換為數組
const nodes = [...foo];const uniqueNodes = [...new Set(foo)]; //可以利用Set和...將數組去重
  1. ES5與ES6的相同點與不同點

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718270.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718270.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718270.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【數據分享】1979~2020年MSWEP降水數據集

各位同學們好&#xff0c;今天和大伙兒分享的是1979~2020年MSWEP降水數據集。如果大家有下載處理數據等方面的問題&#xff0c;您可以私信或者評論。 Beck, H. E., E. F. Wood, M. Pan, C. K. Fisher, D. G. Miralles, A. I. J. M. van Dijk, T. R. McVicar, and R. F. Adler, …

【軟件設計師】通俗易懂的去了解算法的特性和要求

&#x1f413; 算法 算法是對特定問題求解步驟的一種描述&#xff0c;算法是指令的有限序列。其中每一條指令表示一個或者多個操作。 &#x1f413; 算法的5種屬性 有窮性 一個算法必須總是在執行有窮的步驟后&#xff0c;且在每個步驟執行的過程中時間是有限的 1.有窮性意味…

深度學習 精選筆記(7)前向傳播、反向傳播和計算圖

學習參考&#xff1a; 動手學深度學習2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、請聯系侵刪。 ②已寫完的筆記文章會不定時一直修訂修改(刪、改、增)&#xff0c;以達到集多方教程的精華于一文的目的。 ③非常推薦上面&#xff08;學習參考&#x…

藍橋杯:單詞分析

題目 題目描述 小藍給學生們組織了一場考試&#xff0c;卷面總分為 100 分&#xff0c;每個學生的得分都是一個 0 到 100 的整數。 如果得分至少是 60 分&#xff0c;則稱為及格。如果得分至少為 85 分&#xff0c;則稱為優秀。 請計算及格率和優秀率&#xff0c;用百分數表…

Rstudio-深度學習執行代碼

RStudio是一個開源的集成開發環境&#xff08;IDE&#xff09;&#xff0c;專門用于R編程語言的開發和數據分析。R語言是一種流行的統計計算和數據可視化語言&#xff0c;廣泛用于數據科學、統計學和機器學習領域。 RStudio提供了許多功能強大的工具&#xff0c;包括代碼編輯器…

SQL 基本條件查詢DQL 練習

DQL DQL&#xff08;Data Query Language&#xff09;是SQL語言中的一種類型&#xff0c;用于執行數據查詢操作。它是SQL的一部分&#xff0c;用于從數據庫中檢索數據。DQL語句用于從一個或多個表中選擇、過濾和排序數據。常見的DQL查詢語句包括SELECT、FROM、WHERE、GROUP BY…

U盤無法讀取?輕松掌握正確解決方法!

“為什么我的u盤插入電腦后會顯示無法讀取呢&#xff1f;想查看一些比較重要的文件&#xff0c;但就是無法讀取U盤&#xff0c;想問問大家&#xff0c;我應該怎么操作呢&#xff1f;” U盤作為一種便捷的數據存儲設備&#xff0c;廣泛應用于我們的日常生活和工作中。然而&#…

獨立游戲《星塵異變》UE5 C++程序開發日志2——創建并編寫一個C++類

在本篇日志中&#xff0c;我們將要用一個C類來實現一個游戲內的物品&#xff0c;同時介紹UCLASS、USTRUCT、UPROPERTY的使用 一、創建一個C類 我們在UE5的"內容側滑菜單"中&#xff0c;在右側空白中右鍵選擇"新建C類"&#xff0c;然后可以選擇一個想要的…

python70-Python的函數入門,了解下函數

函數是執行特定任務的一段代碼,程序通過將一段代碼定義成函數,并為該函數指定一個函數名,這樣即可在需要的時候多次調用這段代碼。因此,函數是代碼復用的重要手段。學習函數需要重點掌握定義函數、調用函數的方法。 與函數緊密相關的另一個知識點是lambda表達式。lamda表達…

Spring AOP(Aspect-Oriented Programming,面向切面編程)介紹

Spring AOP&#xff08;Aspect-Oriented Programming&#xff0c;面向切面編程&#xff09;是Spring框架的一個重要模塊&#xff0c;它提供了一種強大的方式來幫助開發者實現橫切關注點&#xff08;cross-cutting concerns&#xff09;的模塊化。橫切關注點是指那些影響多個模塊…

Linux設備模型(十一) - platform設備

一&#xff0c;platform device概述 在Linux2.6以后的設備驅動模型中&#xff0c;需關心總線、設備和驅動這3個實體&#xff0c;總線將設備和驅動綁定。在系統每注冊一個設備的時候&#xff0c; 會尋找與之匹配的驅動&#xff1b;相反的&#xff0c;在系統每注冊一個設備的時…

【Redis】實際應用 - 緩存

文章目錄 1. 緩存的基本概念2. Redis作為緩存的優勢2.1 內存存儲2.2 持久性選項2.3 數據結構豐富 3. Redis緩存的使用3.1 安裝和配置Redis3.2 連接到Redis3.3 存儲和獲取數據3.4 設置過期時間 4. 緩存策略4.1 LRU&#xff08;最近最少使用&#xff09;4.2 數據失效4.3 主動刷新…

可讓照片人物“開口說話”阿里圖生視頻模型EMO,高啟強普法

3 月 1 日消息&#xff0c;阿里巴巴研究團隊近日發布了一款名為“EMO&#xff08;Emote Portrait Alive&#xff09;”的 AI 框架&#xff0c;該框架號稱可以用于“對口型”&#xff0c;只需要輸入人物照片及音頻&#xff0c;模型就能夠讓照片中的人物開口說出相關音頻&#xf…

PDN分析及應用系列二-簡單5V電源分配-Altium Designer仿真分析-AD

PDN分析及應用系列二 —— 案例1:簡單5V電源分配 預模擬DC網絡識別 當最初為PCB設計打開PDN分析儀時,它將嘗試根據公共電源網絡命名法從設計中識別所有直流電源網絡。 正確的DC網絡識別對于獲得最準確的模擬結果非常重要。 在示例項目中已經識別出主DC網絡以簡化該過程。 …

Vulnhub靶機:Bellatrix

一、介紹 運行環境&#xff1a;Virtualbox 攻擊機&#xff1a;kali&#xff08;10.0.2.4&#xff09; 靶機&#xff1a;Bellatrix&#xff08;10.0.2.9&#xff09; 目標&#xff1a;獲取靶機root權限和flag 靶機下載地址&#xff1a;https://www.vulnhub.com/entry/hogwa…

Leetcode 3070. Count Submatrices with Top-Left Element and Sum Less Than k

Leetcode 3070. Count Submatrices with Top-Left Element and Sum Less Than k 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3070. Count Submatrices with Top-Left Element and Sum Less Than k 1. 解題思路 這一題就是一個二維的累積數組的問題&#xff0c;我們直接求一…

網絡學習:MPLS技術基礎知識

目錄 一、MPLS技術產生背景 二、MPLS網絡組成&#xff08;基本概念&#xff09; 1、MPLS技術簡介&#xff1a;Multiprotocol Lable Switching&#xff0c;多協議標簽交換技術 2、MPLS網絡組成 三、MPLS的優勢 四、MPLS的實際應用 一、MPLS技術產生背景 1、IP采用最長掩碼…

Power BI vs Superset BI 調研報告

調研結論 SupersetPower BI價格開源①. Power BI Pro 每人 $10/月($120/年/人) ②. Power BI Premium 每人 $20/月($240/年/人) ③. Power BI Embedded:4C10G $11W/年 權限基于角色的訪問控制,支持細粒度的訪問: 表級別、庫級別、圖表級別,看板級別,用戶級別 基于角色…

每天一個數據分析題(一百八十五)

給定下述Python代碼段&#xff0c;試問哪個選項正確描述了該代碼段的功能&#xff1f; data_raw[‘gender’] data_raw[‘gender’].map({‘Male’: 1, ‘Female’: 0}) A. 代碼中對gender變量進行了獨熱編碼(One-Hot Encoding)&#xff0c;并將gender中的缺失值填充為類別平…

深度學習API——keras初學

keras定義&#xff1a; Keras是一個深度學習API&#xff08;人工神經網絡庫&#xff09;&#xff0c;使用Python語言編寫的github開源項目&#xff0c;主要開發者為谷歌工程師。Keras底層可調用不同的機器學習平臺&#xff0c;如TensorFlow、Theano或micsoft-CNTK。 作用&…