• 玩转代码|分享一些实用的Vue 前端代码(三)


    目录

    三、注释规范

    3.1 HTML 文件注释

    3.1.1 单行注释

    3.1.2 模块注释

    3.1.3 嵌套模块注释

    3.2 CSS 文件注释

    3.2.1 单行注释

    3.2.2 模块注释

    3.2.3 文件注释

    3.3 JavaScript 文件注释

    3.3.1 单行注释

    3.3.2 多行注释

    3.3.3 注释空格

    3.3.4 特殊标记

    3.3.5 文档类注释

    3.3.6 注释工具


    三、注释规范

    注释的目的:

    • 提高代码的可读性,从而提高代码的可维护性

    注释的原则:

    • 如无必要,勿增注释 ( As short as possible )
    • 如有必要,尽量详尽 ( As long as necessary )

    3.1 HTML 文件注释

    3.1.1 单行注释

    一般用于简单的描述,如某些状态描述、属性描述等。

    注释内容前后各一个空格字符,注释位于要注释代码的上面,单独占一行。

    • 推荐:
      1. <div>...div>
    • 不推荐
      1. <div>...div>
      2. <div>
      3. ...
      4. div>
    3.1.2 模块注释

    一般用于描述模块的名称以及模块开始与结束的位置。

    注释内容前后各一个空格字符, 表示模块开始, 表示模块结束,模块与模块之间相隔一行。

    • 推荐:
      1. <div class="mod_a">
      2. ...
      3. div>
      4. <div class="mod_b">
      5. ...
      6. div>
    • 不推荐
    1. <div class="mod_a">
    2. ...
    3. div>
    4. <div class="mod_b">
    5. ...
    6. div>
    3.1.3 嵌套模块注释

    当模块注释内再出现模块注释的时候,为了突出主要模块,嵌套模块不再使用。

    而改用

    注释写在模块结尾标签底部,单独一行。

    1. <div class="mod_a">
    2. <div class="mod_b">
    3. ...
    4. div>
    5. <div class="mod_c">
    6. ...
    7. div>
    8. div>

     

    3.2 CSS 文件注释

    3.2.1 单行注释

    注释内容第一个字符和最后一个字符都是一个空格字符,单独占一行,行与行之间相隔一行。

    • 推荐:
      1. /* Comment Text */
      2. .jdc {}
      3. /* Comment Text */
      4. .jdc {}

    • 不推荐:
      1. /*Comment Text*/
      2. .jdc {
      3. display: block;
      4. }
      5. .jdc {
      6. display: block;/*Comment Text*/
      7. }

    3.2.2 模块注释

    注释内容第一个字符和最后一个字符都是一个空格字符,/* 与 模块信息描述占一行,多个横线分隔符 - 与 */ 占一行,行与行之间相隔两行。

    • 推荐:
    1. /* Module A
    2. ---------------------------------------------------------------- */
    3. .mod_a {}
    4. /* Module B
    5. ---------------------------------------------------------------- */
    6. .mod_b {}
    • 不推荐:
    1. /* Module A ---------------------------------------------------- */
    2. .mod_a {}
    3. /* Module B ---------------------------------------------------- */
    4. .mod_b {}
    3.2.3 文件注释

    在样式文件编码声明 @charset 语句下面注明页面名称、作者、创建日期等信息。

    1. @charset "UTF-8";
    2. /**
    3. * @desc File Info
    4. * @author Author Name
    5. * @date 2015-10-10
    6. */

    3.3 JavaScript 文件注释

    3.3.1 单行注释

    单行注释使用 //,注释应单独一行写在被注释对象的上方,不要追加在某条语句的后面。

    // is current tab const active = true
    • 不推荐:
      const active = true // is current tab

    注释行的上方需要有一个空行(除非注释行上方是一个块的顶部),以增加可读性。

    • 推荐:
      1. function getType () {
      2. console.log('fetching type...')
      3. // set the default type to 'no type'
      4. const type = this.type || 'no type'
      5. return type
      6. }

    1. // 注释行上面是一个块的顶部时不需要空行
    2. function getType () {
    3. // set the default type to 'no type'
    4. const type = this.type || 'no type'
    5. return type
    6. }

     

    • 不推荐:
    1. function getType () {
    2. console.log('fetching type...')
    3. // set the default type to 'no type'
    4. const type = this.type || 'no type'
    5. return type
    6. }
    3.3.2 多行注释

    多行注释使用 /** ... */,而不是多行的 //

    • 推荐:
    1. /**
    2. * make() returns a new element
    3. * based on the passed-in tag name
    4. */
    5. function make (tag) {
    6. // ...
    7. return element
    8. }
    • 不推荐:
    1. // make() returns a new element
    2. // based on the passed in tag name
    3. function make (tag) {
    4. // ...
    5. return element
    6. }
    3.3.3 注释空格

    注释内容和注释符之间需要有一个空格,以增加可读性。eslint: spaced-comment

    • 推荐:
    1. // is current tab
    2. const active = true
    3. /**
    4. * make() returns a new element
    5. * based on the passed-in tag name
    6. */
    7. function make(tag) {
    8. // ...
    9. return element
    10. }
    • 不推荐:
    1. //is current tab
    2. const active = true
    3. /**
    4. *make() returns a new element
    5. *based on the passed-in tag name
    6. */
    7. function make(tag) {
    8. // ...
    9. return element
    10. }
    3.3.4 特殊标记

    有时我们发现某个可能的 bug,但因为一些原因还没法修复;或者某个地方还有一些待完成的功能,这时我们需要使用相应的特殊标记注释来告知未来的自己或合作者。常用的特殊标记有两种:

    • // FIXME : 说明问题是什么
    • // TODO : 说明还要做什么或者问题的解决方案
    1. class Calculator extends Abacus {
    2. constructor () {
    3. super ()
    4. // FIXME: shouldn’t use a global here
    5. total = 0
    6. // TODO: total should be configurable by an options param
    7. this.total = 0
    8. }
    9. }
    3.3.5 文档类注释

    文档类注释,如函数、类、文件、事件等;都使用 jsdoc 规范。

    1. /**
    2. * Book类,代表一个书本.
    3. * @constructor
    4. * @param {string} title - 书本的标题.
    5. * @param {string} author - 书本的作者.
    6. */
    7. function Book (title, author) {
    8. this.title = title
    9. this.author = author
    10. }
    11. Book.prototype = {
    12. /**
    13. * 获取书本的标题
    14. * @returns {string|*}
    15. */
    16. getTitle: function () {
    17. return this.title
    18. },
    19. /**
    20. * 设置书本的页数
    21. * @param pageNum {number} 页数
    22. */
    23. setPageNum: function (pageNum) {
    24. this.pageNum=pageNum
    25. }
    26. }
    3.3.6 注释工具

    ESLint 是当下最流行的 JS 代码检查工具,ESLint 中有一些注释相关的规则,用户可选择开启:

    • valid-jsdoc
    • require-jsdoc
    • no-warning-comments
    • capitalized-comments
    • line-comment-position
    • lines-around-comment
    • multiline-comment-style
    • no-inline-comments
    • spaced-comment
  • 相关阅读:
    城市群(Megalopolis)/城际(inter-city)OD相关研究即Open Access数据集调研
    字符串入门十八讲合集四
    node版本管理工具nvm的使用
    以AI对抗AI,大模型安全的“进化论”
    Excel如何进行隔行复制粘贴
    Redis(一)入门:五大数据类型的学习和理解①
    系统滴答及Systick定时器
    通配符 SSL/TLS 证书
    软件测试需要学习什么 3分钟带你了解软测的学习内容
    Maven下载、安装、配置教程
  • 原文地址:https://blog.csdn.net/qq_22903531/article/details/132903498