前端:HTML、CSS、JavaScript 代码注释 / 注释与代码规范

news2024/10/10 5:18:50

一、HTML 行内注释

HTML注释是在HTML代码中添加说明和解释的一种方法,这些注释不会被浏览器渲染或显示在页面上,而是被浏览器忽略。HTML注释对于代码的可读性、可维护性和团队协作非常重要。

1.1、HTML注释的语法

HTML注释的语法是以<!--开始,以-->结束。在这两个标记之间的任何内容都被视为注释。

1.2、示例

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>HTML注释示例</title>  
    <!-- 这是一个HTML注释 -->  
    <!--  
    这是一个多行HTML注释  
    可以跨越多行  
    并包含任何文本  
    -->  
</head>  
<body>  
    <h1>欢迎来到我的网页</h1>  
    <!-- 这里可以放置对h1标签的注释,例如:"h1标签用于显示页面主标题" -->  
    <p>这是一个段落。</p>  
</body>  
</html>

1.3、HTML注释的用途

解释代码:为HTML代码提供说明,解释代码的用途、功能或特定元素的意义。

标记代码块:用于标记特定的代码块,以便将来参考或修改。

临时移除代码:如果不想删除某段代码,但又不希望它出现在页面上,可以将其注释起来。

为开发人员提供指导:如果有某些需要注意的潜在问题或风险,可以使用注释来提醒其他开发人员。

1.4、HTML注释的最佳实践

简短而有意义:注释应该简短而清晰,能够准确地传达代码的含义和目的。

避免冗余:不要为显而易见的代码或默认行为添加注释。

一致性:在团队开发中,应保持注释风格的一致性,以便其他开发人员能够轻松理解。

位于被注释的代码附近:通常,注释应位于被注释的代码之前或之上,以便于阅读和理解。

使用有意义的注释:确保注释提供了有价值的信息,而不是简单的“TODO”或“此处需要修改”。

二、CSS 注释

CSS注释是一种在CSS代码中添加说明和解释的方法,它们不会被浏览器执行或解析,而是被浏览器忽略。CSS注释对于代码的可读性、可维护性和团队协作非常重要。

2.1、CSS注释的语法

单行注释

语法:/* 单行注释内容 */

语法://

/* 为所有 h1 标签设置 CSS 样式 */

多行注释

/*  
多行注释内容  
可以跨越多行  
*/

这样也是可以的 

3.2、CSS注释的用途

解释代码:为CSS代码提供说明,解释代码的用途、功能或特定样式设置的原因。

标记代码块:用于标记特定的代码块,以便将来参考或修改。

禁用代码:如果不想删除某段代码,但又不希望它被执行,可以将其注释起来。

警告其他开发人员:如果有某些需要注意的潜在问题或风险,可以使用注释来提醒其他开发人员。

3.3、CSS注释的最佳实践

简短而有意义:注释应该简短而清晰,能够准确地传达代码的含义和目的。

避免冗余:不要为显而易见的代码或默认行为添加注释。

一致性:在团队开发中,应保持注释风格的一致性,以便其他开发人员能够轻松理解。

位于被注释的代码之前:通常,注释应位于被注释的代码之前,以便于阅读和理解。

使用单行注释或多行注释:对于较短的注释,可以使用单行注释;对于较长的注释或需要跨越多行的注释,应使用多行注释。

3.4、示例

/* 为所有 h1 标签设置 CSS 样式 */  
h1 {  
  color: blue; /* 设置字体颜色为蓝色 */  
  text-align: center; /* 设置对齐方式为居中对齐 */  
}  
  
/* 为所有 p 标签设置 CSS 样式 */  
p {  
  color: red; /* 设置字体颜色为红色 */  
  font-size: 18px; /* 设置字体大小为18像素 */  
}

三、JavaScript 注释

3.1、单行注释

使用//来标记单行注释。这之后的文本将不会被JavaScript引擎执行或解释。

// 这是一个单行注释
var x = 5; // 这个变量的值为5

3.2、多行注释

使用/*开始,并用*/结束来标记多行注释。在这之间的所有文本都不会被JavaScript引擎执行或解释。

/*
这是一个多行注释
可以跨越多行
var y = 10;
*/

四、JSDoc注释

4.1、常用的JSDoc标记

@param:描述函数或方法的参数。包括参数名、参数类型和参数描述。

@returns 或 @return:描述函数或方法的返回值。包括返回值的类型和描述。

@type:描述变量、对象属性或函数返回值的类型。

@description:提供关于注释块的更详细描述。

@example:提供示例代码。

@see:提供参考链接。

4.2、示例

/**  
 * 将两个数字相加,第二个数字可选,默认为0  
 *  
 * @param {number} a 第一个数字  
 * @param {number} [b=0] 第二个数字,默认为0  
 * @returns {number} 两个数字的和  
 */  
function add(a, b = 0) {  
    return a + b;  
}

五、代码注释规范 

代码注释规范是确保代码清晰、可理解和可维护的重要部分。下面是一些常见的代码注释规范:

5.1、注释类型

单行注释:使用//来注释单行内容。

多行注释:使用/* 开始,*/ 结束来注释多行内容。

文档注释(如JSDoc):对于函数、类、接口等,使用特定的文档注释格式来描述其用法、参数、返回值等信息。

5.2、注释内容

简洁明了:注释应简洁、直接,避免冗长和复杂的句子。

描述性:解释代码的目的、功能、输入、输出以及任何重要的限制或约束。

避免冗余:不要重复代码本身已经表达的内容。

5.3、注释位置

函数/方法上方:解释函数/方法的用途、参数、返回值等信息。

代码块上方:如果代码块执行了复杂的逻辑或算法,可以在其上方添加注释。

变量声明旁边:对于复杂的或具有特定含义的变量,可以在其旁边添加注释。

关键或复杂代码行旁边:如果某行代码特别关键或难以理解,可以在其旁边添加注释。

5.4、注释格式

一致性:确保在整个项目中使用一致的注释格式。

对齐:注释应该与代码对齐,以增加可读性。

字体和颜色:在某些IDE或编辑器中,可以为注释设置特定的字体和颜色。

5.5、特殊注释

TODO:用于标记需要将来完成或改进的代码部分。

FIXME:用于标记需要修复的错误或问题。

HACK:用于标记可能不优雅的解决方案或权宜之计。

5.6、避免过度注释

不要为简单的、自解释的代码添加注释。

如果代码本身已经很清晰,那么注释可能是多余的。

5.7、更新注释

当代码发生变化时,确保相关的注释也得到更新。

移除不再相关或不再准确的注释。

5.8、文档注释

对于文档注释(如JavaDoc、JSDoc等),应遵循特定的格式和标记规范,以确保生成的文档清晰、完整。

5.9、注释语言

使用简单、清晰的语言来编写注释。

避免使用复杂的词汇或行业特定的术语,除非这些术语在项目的上下文中是普遍理解的。

5.10、注释的审查

在代码审查中,确保注释得到适当的关注。

检查注释是否准确、清晰,并与代码保持一致。

遵循这些注释规范可以帮助你编写更清晰、可维护的代码,并提高团队协作的效率。

参考链接

前端代码规范 - 代码注释_前端注释-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1862770.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法与数据结构】【字符串篇】【String的常见函数】

系列文章 本人系列文章-CSDN博客https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5502 1.string基本概念 string是C风格的字符串&#xff0c;而string本质上是一个类。 string和char * 区别&#xff1a; char * 是一个指针 string是一…

OpenAI 收购桌面实时协作公司 Multi;iOS 18 开放 iPhone 镜像测试丨RTE 开发者日报 Vol.231

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

[深度学习] 卷积神经网络CNN

卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;是一种专门用于处理数据具有类似网格结构的神经网络&#xff0c;最常用于图像数据处理。 一、CNN的详细过程&#xff1a; 1. 输入层 输入层接收原始数据&#xff0c;例如一张图像&#xff0c;它可以被…

图片怎么加水印?快来试试这6个图片加水印方法(2024年新)

图片怎么加水印&#xff1f;作为打工人在日常的工作生活中总会遇到各种各样的工作难题&#xff0c;相信从事电商或者是设计等工作的小伙伴们&#xff0c;遇到最多的问题应该就是给图片添加水印了。为什么要给图片加水印&#xff1f;其实给图片加水印最主要的目的是保护我们的图…

Linux集群自动化维护-Ansible

1.1Ansible概述 自动化运维&#xff1a;批量管理&#xff0c;批量分发&#xff0c;批量执行&#xff0c;维护。。是python写的 批量管理工具&#xff1a; Ansible&#xff08;无客户端&#xff09;&#xff1a;无客户端&#xff0c;基于ssh进行管理与维护 Saltstack &#…

深度之眼(二十五)——研究生学习计划安排

文章目录 一、前言二、结构安排和规划2.1 夯实基础2.2 分方向训练&#xff08;待&#xff09;2.3 进阶训练 三、其他 一、前言 课题组这边是需要对机器视觉有所要求吧&#xff0c;也就是CV方向。这一届研三师兄也都是在大厂拿到30W的年薪了&#xff0c;也是需要拥抱深度学习这…

NineData和华为云在一起!提供一站式智能数据库DevOps平台

以GuassDB数据库为底座 NineData和华为云一起 为企业提供 一站式智能数据库DevOps平台 帮助开发者 高效、安全地完成 数据库SQL审核 访问控制、敏感数据保护等 日常数据库相关开发任务 NineData 智能数据管理平台 NineData 作为新一代的云原生智能数据管理平台&#xf…

SpringCloud:Gateway服务网关

程序员老茶 &#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; P   S : 点赞是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#…

聚星文社ai工具下载

您可以在聚星文社官方网站上下载他们的AI工具。请访问他们的官方网站&#xff0c; 然后找到下载页面&#xff0c;从中选择并下载所需的AI工具。下载 如果您对下载过程有任何问题&#xff0c;建议您直接联系聚星文社的客服人员寻求帮助。

统信UOS系统忘记登录密码怎么办

在使用统信操作系统UOS的时候有可能会出现忘记密码的情况&#xff0c;当遇到了用户登录密码忘记时如何修改&#xff1f;今天分享一下忘记超级系统管理员Root以及普通密码时的解决方法。 因为UOS系统版本的原因&#xff0c;UOS 1031操作系统取消了单用户更改密码的方法&#xff…

Sulfo Cy3-NHS Ester生物标记与成像

【星戈瑞stargraydye】以下数据均来自文献资料,星戈瑞暂未进行独立验证, 仅供参考&#xff01; 在生物医学研究的前沿领域&#xff0c;荧光标记技术扮演着科研角色。其中&#xff0c;Sulfo Cy3 NHS Ester作为一种性能的荧光染料&#xff0c;以其高灵敏度、高特异性以及良好的生…

绿色共享购:共创绿色消费新纪元

在当今快节奏的社会中&#xff0c;人们对绿色消费和共享经济的追求愈发凸显其重要性。为了满足这一需求&#xff0c;我们创新推出了“绿色共享购”这一前沿的消费增值模式。该模式不仅有效整合了商家资源&#xff0c;更通过其独特的机制&#xff0c;实现了商家与消费者的双重增…

Unity关于Addressables.Release释放资源内存问题

前言 最近在编写基于Addressables的资源管理器&#xff0c;对于资源释放模块配合MemoryProfiler进行了测试&#xff0c;下面总结下测试Addressables.Release的结论。 总结 使用Addressables.Release释放资源时&#xff0c;通过MemoryProfiler检查内存信息发现加载的内容还在…

[leetcode]unique-paths 不同路径

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> f(m, vector<int>(n));for (int i 0; i < m; i) {f[i][0] 1;}for (int j 0; j < n; j) {f[0][j] 1;}for (int i 1; i &l…

Ubuntu22 更新内核后终端输入卡顿,最简单的解决方案

在系统升级后相信很多人都遇到了这个问题&#xff0c;系统终端输入卡顿&#xff0c;但是ssh远程进来不卡&#xff0c;使用第三方终端也不卡,…&#xff0c;今天终于忍不了&#xff0c;解决了 现象&#xff1a; 更新Nvidia驱动后,内核进行了自动编译升级。 之后的一段时间使用…

grpc学习golang版( 二、入门示例)

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 文章目录 一、环境二、编写protobuf文件三、编写server服务端四、编写服务端五、测试 一、环境 确保环境已经配置完成&#xff0c;效果如下。不同环境可能导致后续生成的效果不一。 go version protoc --version…

后端返回base64文件流下载

后端返回base64文件流: 前端处理&#xff1a; downloadTemplate () {this.$API.downloadTemplate().then(({ data }) > {const binaryString atob(data) // 解码base64字符串const byteArray new Uint8Array(binaryString.length) // 创建一个Uint8Arrayfor (let i 0; i…

AI时代下:面对高要求低薪酬,我们如何破局?

在人工智能&#xff08;AI&#xff09;技术日新月异的今天&#xff0c;职场生态正经历着颠覆性的变革。AI技术的广泛应用极大地提高了工作效率&#xff0c;为企业带来了前所未有的发展契机&#xff0c;然而&#xff0c;这也给我们这些职场人带来了前所未有的挑战。在这些挑战中…

# Kafka_深入探秘者(6):kafka 物理存储

Kafka_深入探秘者&#xff08;6&#xff09;&#xff1a;kafka 物理存储 一、kafka 存储结构 1、kafka 存储结构概述图 2、kafka 存储结构概述 每一个 partion (文件夹)相当于一个巨型文件被平均分配,到多个大小相等 segment(段) 数据文件里。但每一个段 segment file 消息数…

CV每日论文--2024.6.24

1、Whiteboard-of-Thought: Thinking Step-by-Step Across Modalities 中文标题&#xff1a;思维白板&#xff1a;跨模式逐步思考 简介&#xff1a;这段话描述了一种利用思维白板提示来增强大型语言模型在视觉推理任务中的性能的方法。 人类在解决需要视觉思考的问题时,通常会…