注释的目的:
注释的原则:
一般用于简单的描述,如某些状态描述、属性描述等。
注释内容前后各一个空格字符,注释位于要注释代码的上面,单独占一行。
<!-- Comment Text --><div>...</div>
<div>...</div><!-- Comment Text --><div><!-- Comment Text -->...</div>
一般用于描述模块的名称以及模块开始与结束的位置。
注释内容前后各一个空格字符, <!-- S Comment Text -->表示模块开始, <!-- E Comment Text -->表示模块结束,模块与模块之间相隔一行。
<!-- S Comment Text A --><div class="mod_a">...</div><!-- E Comment Text A --><!-- S Comment Text B --><div class="mod_b">...</div><!-- E Comment Text B -->
<!-- S Comment Text A --><div class="mod_a">...</div><!-- E Comment Text A --><!-- S Comment Text B --><div class="mod_b">...</div><!-- E Comment Text B -->
当模块注释内再出现模块注释的时候,为了突出主要模块,嵌套模块不再使用。
<!-- S Comment Text --><!-- E Comment Text -->
而改用
<!-- /Comment Text -->
注释写在模块结尾标签底部,单独一行。
<!-- S Comment Text A --><div class="mod_a"><div class="mod_b">...</div><!-- /mod_b --><div class="mod_c">...</div><!-- /mod_c --></div><!-- E Comment Text A -->
注释内容第一个字符和最后一个字符都是一个空格字符,单独占一行,行与行之间相隔一行。
/* Comment Text */.jdc {}/* Comment Text */.jdc {}
/*Comment Text*/.jdc {display: block;}.jdc {display: block;/*Comment Text*/}
注释内容第一个字符和最后一个字符都是一个空格字符,/* 与 模块信息描述占一行,多个横线分隔符 - 与 */ 占一行,行与行之间相隔两行。
/* Module A---------------------------------------------------------------- */.mod_a {}/* Module B---------------------------------------------------------------- */.mod_b {}
/* Module A ---------------------------------------------------- */.mod_a {}/* Module B ---------------------------------------------------- */.mod_b {}
在样式文件编码声明 @charset 语句下面注明页面名称、作者、创建日期等信息。
@charset "UTF-8";/*** @desc File Info* @author Author Name* @date 2015-10-10*/
单行注释使用 //,注释应单独一行写在被注释对象的上方,不要追加在某条语句的后面。
// is current tabconst active = true
const active = true // is current tab
注释行的上方需要有一个空行(除非注释行上方是一个块的顶部),以增加可读性。
function getType () {console.log('fetching type...')// set the default type to 'no type'const type = this.type || 'no type'return type}
// 注释行上面是一个块的顶部时不需要空行function getType () {// set the default type to 'no type'const type = this.type || 'no type'return type}
function getType () {console.log('fetching type...')// set the default type to 'no type'const type = this.type || 'no type'return type}
多行注释使用 /** ... */,而不是多行的 //。
/*** make() returns a new element* based on the passed-in tag name*/function make (tag) {// ...return element}
// make() returns a new element// based on the passed in tag namefunction make (tag) {// ...return element}
注释内容和注释符之间需要有一个空格,以增加可读性。eslint: spaced-comment。
// is current tabconst active = true/*** make() returns a new element* based on the passed-in tag name*/function make(tag) {// ...return element}
//is current tabconst active = true/***make() returns a new element*based on the passed-in tag name*/function make(tag) {// ...return element}
有时我们发现某个可能的 bug,但因为一些原因还没法修复;或者某个地方还有一些待完成的功能,这时我们需要使用相应的特殊标记注释来告知未来的自己或合作者。常用的特殊标记有两种:
// FIXME : 说明问题是什么// TODO : 说明还要做什么或者问题的解决方案
class Calculator extends Abacus {constructor () {super ()// FIXME: 这里不应该使用全局total = 0// TODO: 合计应通过选项参数进行配置this.total = 0}}
文档类注释,如函数、类、文件、事件等;都使用 jsdoc 规范。
/*** Book类,代表一个书本.* @constructor* @param {string} title - 书本的标题.* @param {string} author - 书本的作者.*/function Book (title, author) {this.title = titlethis.author = author}Book.prototype = {/*** 获取书本的标题* @returns {string|*}*/getTitle: function () {return this.title},/*** 设置书本的页数* @param pageNum {number} 页数*/setPageNum: function (pageNum) {this.pageNum=pageNum}}
Copyright 2014-2025 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号