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

一、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博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中小学劳技课程开展创意木工 传承非遗木工魅力

学生劳技课程&#xff0c;全称劳动技术课程&#xff0c;是一门旨在通过实践活动培养学生的劳动技能、创新思维、实践能力和社会责任感的基础教育课程。这门课程强调学生的参与和体验&#xff0c;让学生在动手实践中学习并掌握知识&#xff0c;提高解决问题的能力。 学生劳技课程…

大模型应用研发基础环境配置(Miniconda、Python、Jupyter Lab、Ollama等)

老牛同学之前使用的MacBook Pro电脑配置有点旧&#xff08;2015 年生产&#xff09;&#xff0c;跑大模型感觉有点吃力&#xff0c;操作起来有点卡顿&#xff0c;因此不得已捡起了尘封了快两年的MateBook Pro电脑&#xff08;老牛同学其实不太喜欢用 Windows 电脑做研发工作&am…

解码数智升级良方:中国一拖、中原传媒、神火股份等企业数字化实践分析

大模型、AI等技术的成熟以及政策法规的细化&#xff0c;数据资源的权属论证、合规确权、资产论证等环节逐渐走向实用性、价值化。 而伴随着“业财税数融”综合性数字化成为企业数字化转型的主流选择&#xff0c;财务部门的纽带属性被放大&#xff0c;财务数据的融合能力成为企业…

ABC234G Divide a Sequence 题解

题目来源 ABC234G 洛谷 Description 给定长度为 n n n 的序列 { a n } \{a_n\} {an​}。定义一种将 { a n } \{a_n\} {an​} 划分为若干段的方案的价值为每段的最大值减去最小值的差的乘积。求所有划分方案的价值的总和并对 998244353 998244353 998244353 取模。 1 ≤…

Vue3 使用 Vue Router 时,params 传参失效

前言&#xff1a; 在写项目的时候&#xff0c;使用了 vue-router 的 params 进行传参&#xff0c;但是在详情页面中一直获取不到参数。原因&#xff1a;Vue Router 在2022-8-22的那次更新后&#xff0c;使用这种方式在新页面上无法获取&#xff01; 正文&#xff1a; 在列表页进…

从零开始做题:老照片中的密码

老照片中的密码 1.题目 1.1 给出图片如下 1.2 给出如下提示 这张老照片中的人使用的是莫尔斯电报机&#xff0c;莫尔斯电报机分为莫尔斯人工电报机和莫尔斯自动电报机&#xff08;简称莫尔斯快机&#xff09;。莫尔斯人工电报机是一种最简单的电报机&#xff0c;由三个部分组…

【笔记】从零开始做一个精灵龙女-拆uv阶段

目录 先回顾一下拆uv的基础流程吧 肩部盔甲分UV示例 手环UV部分 腰带UV部分 其它也差不多&#xff0c;需要删掉一半的就先提前删掉一半&#xff0c;然后把不需要的被遮挡的面也删掉 龙角UV 胸甲UV 侧边碎发UV 马尾UV 脸部/耳朵UV 特殊情况&#xff1a;如果要删一半再…

kafka的命令行操作

kafka-topics.bat 该命令行和主题相关 kafka启动后&#xff0c;默认端口为9092,可修改 找到kafka_2.13-3.6.2\bin\windows目录下的kafka-topics.bat&#xff0c;用cmd执行 按下会有提示&#xff0c;REQURIED代表为必输项 创建topic 创建一个名为test的topic队列 kafka-t…

绘制图形

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在前3节的实例中&#xff0c;我们一直绘制的都是直线&#xff0c;实际上&#xff0c;海龟绘图还可以绘制其他形状的图形&#xff0c;如圆形、多边形等…

FineReport聚合报表与操作

一、报表类型 模板设计是 FineReport 学习过程中的主要难题所在&#xff0c;FineReport 模板设计主要包括普通报表、聚合报表、决策报表三种设计类型。 报表类型简介- FineReport帮助文档 - 全面的报表使用教程和学习资料 二、聚合报表 2-1 介绍 聚合报表指一个报表中包含多个…

STM32的SPI通信

1 SPI协议简介 SPI&#xff08;Serial Peripheral Interface&#xff09;协议是由摩托罗拉公司提出的通信协议&#xff0c;即串行外围设备接口&#xff0c;是一种高速全双工的通信总线。它被广泛地使用在ADC、LCD等设备与MCU间&#xff0c;使用于对通信速率要求较高的场合。 …

扩散模型 GLIDE:35 亿参数的情况下优于 120 亿参数的 DALL-E 模型

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

LeetCode 算法:二叉树的层序遍历 c++

原题链接&#x1f517;&#xff1a;二叉树的层序遍历 难度&#xff1a;中等⭐️⭐️ 题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;roo…

TensorFlow开源项目

欢迎来到 Papicatch的博客 文章目录 &#x1f349;TensorFlow介绍 &#x1f349;主要特点和功能 &#x1f348;多语言支持 &#x1f348;灵活的架构 &#x1f348;分布式训练 &#x1f348;跨平台部署 &#x1f348;强大的工具链 &#x1f348;丰富的社区和生态系统 &a…

人工智能与物联网:融合创新驱动未来

引言 人工智能&#xff08;AI&#xff09;指的是计算机系统模拟人类智能的能力&#xff0c;包括学习、推理、问题解决、理解自然语言以及感知和响应环境的能力。AI技术涵盖了机器学习、深度学习、神经网络、自然语言处理等领域&#xff0c;广泛应用于图像识别、语音识别、自动驾…

FPGA学习笔记(5)——硬件调试与使用内置的集成逻辑分析仪(ILA)IP核

如果要对信号进行分析&#xff0c;可以使用外置的逻辑分析仪&#xff0c;但成本较高&#xff0c;对初学者来说没有必要&#xff0c;可以使用Xilinx Vivado内自带的逻辑分析仪IP核对信号进行分析&#xff0c;不过需要占用一定的芯片资源。 本节采用上一节配置的LED灯闪烁代码&a…

如何改善老年人的行走姿势以减少小碎步现象?

改善老年人行走姿势的方法 为了改善老年人的行走姿势并减少小碎步现象&#xff0c;可以采取以下几种方法&#xff1a; 平衡训练&#xff1a;通过使用单脚站立架、平衡板等器械&#xff0c;提高身体稳定性和协调性&#xff0c;增强核心稳定性及下肢肌肉力量&#xff0c;从而改善…

数据结构-顺序表的交换排序

顺序表的初始化 const int M 505;typedef struct{int key; //关键元素int others; //其他元素 }info;typedef struct{info r[M1]; int length(); //表长 }SeqList,*PSeqList; 冒泡排序 分析&#xff1a; 顺序表的冒泡排序和数组的冒泡排序的…

STM32定时器入门篇——(基本定时器的使用)

一、基本定时器的功能介绍&#xff1a; STM32F103的基本定时器有&#xff1a;TIM6、TIM7。基本定时器TIM6和TIM7各包含一个16位递增自动装载计数器&#xff0c;最大计数到2^16也就是65536&#xff0c;计数值为0~65535&#xff0c;其拥有的功能有&#xff1a;定时中断、主模式触…

深度学习21-30

1.池化层作用&#xff08;筛选、过滤、压缩&#xff09; h和w变为原来的1/2&#xff0c;64是特征图个数保持不变。 每个位置把最大的数字取出来 用滑动窗口把最大的数值拿出来&#xff0c;把44变成22 2.卷积神经网络 &#xff08;1&#xff09;conv&#xff1a;卷积进行特征…