注释在代码编写过程中的重要性,写代码超过半年的就能深深的体会到。没有注释的代码都不是好代码。为了别人学习,同时为了自己以后对代码进行‘升级’,看看js/javascript代码注释规范与示例。来自:http://www.56.com/style/-doc-/v1/tpl/js_dev_spec/spec-comment.html

文件注释

文件注释位于文件的最前面,应包括文件的以下信息:概要说明及版本(必须)项目地址(开源组件必须)版权声明(必须)开源协议(开源组件必须)版本号(必须)修改时间(必须),以ISO格式表示(可使用Sublime Text的InsertDate插件插入)文件注释必须全部以英文字符表示,并存在于文件的开发版本与生产版本中。例如:

1
2
3
4
5
/*!
 *
jRaiser 2 Javascript Library
 *
waterfall - v1.0.0 (2013-03-15T14:55:51+0800)
 *
http://jraiser.org/ | Released under MIT license
 */
1
2
3
4
/*!
 *
kan.56.com - v1.1 (2013-03-08T15:30:32+0800)
 *
Copyright 2005-2013 56.com
 */

如果文件内包含了一些开源组件,则必须在文件注释中进行说明。例如:

1
2
3
4
5
6
7
/*!
 *
jRaiser 2 Javascript Library
 *
sizzle - v1.9.1 (2013-03-15T10:07:24+0800)
 *
http://jraiser.org/ | Released under MIT license
 *
 *
Include sizzle (http://sizzlejs.com/)
 */

普通注释

普通注释是为了帮助开发者和阅读者更好地理解程序,不会出现在API文档中。其中,单行注释以“//”开头;多行注释以“/*”开头,以“*/”结束。普通注释的使用需遵循以下规定。

  • 总是在单行注释符后留一个空格。例如:

1
//
this is comment
  • 总是在多行注释的结束符前留一个空格(使星号对齐)。例如:

1
2
3
/*
                             
 */
  • 不要把注释写在多行注释的开始符、结束符所在行。例如:

1
2
3
/*
start
                             
end
*/
1
2
3
4
/*
here
is line 1
here
is line 2
 */
  • 不要编写无意义的注释。例如:

1
2
//
初始化value变量为0
var value
= 0;
  • 如果某段代码有功能未实现,或者有待完善,必须添加“TODO”标记,“TODO”前后应留一个空格。例如:

1
2
3
4
//
TODO 未处理IE6-8的兼容性
function setOpacity(node,
val) {
    node.style.opacity
= val;
}

文档注释

文档注释将会以预定格式出现在API文档中。它以“/**”开头,以“*/”结束,其间的每一行均以“*”开头(均与开始符的第一个“*”对齐),且注释内容与“*”间留一个空格。例如:

1
2
3
/**
 *
comment
 */

文档注释必须包含一个或多个注释标签。

  • @module。声明模块,用法:

1
2
3
4
/**
 *
模块说明
 *
@module 模块名
 */

例如:

1
2
3
4
/**
 *
Core模块提供最基础、最核心的接口
 *
@module Core
 */
  • @class。声明类,用法:

1
2
3
4
5
/**
 *
类说明
 *
@class 类名
 *
@constructor
 */

@class必须搭配@constructor或@static使用,分别标记非静态类与静态类。

1
2
3
4
5
6
/**
 *
节点集合类
 *
@class NodeList
 *
@constructor
 *
@param {ArrayLike<Element>} nodes 初始化节点
 */
  • @method。声明函数或类方法,用法:

1
2
3
4
5
6
7
/**
 *
方法说明
 *
@method 方法名
 *
@for 所属类名
 *
@param {参数类型} 参数名 参数说明
 *
@return {返回值类型} 返回值说明
 */

没有指定@for时,表示此函数为全局或模块顶层函数。当函数为静态函数时,必须添加@static;当函数有参数时,必须使用@param;当函数有返回值时,必须使用@return。

1
2
3
4
5
6
7
/**
 *
返回当前集合中指定位置的元素
 *
@method
 *
@for NodeList
 *
@param {Number} [i=0] 位置下标。如果为负数,则从集合的最后一个元素开始倒数
 *
@return {Element} 指定元素
 */
  • @param。声明函数参数,必须与@method搭配使用。

  • 当参数出现以下情况时,使用对应的格式:

1
[参数名]
  • 参数有默认值:

1
[参数名=默认值]

@property。声明类属性,用法:

1
2
3
4
/**
 *
属性说明
 *
@property {属性类型} 属性名
 */

javascript注释规范的更多相关文章

  1. JavaScript 注释规范

    JavaScript 注释规范 总原则 As short as possible(如无必要,勿增注释).尽量提高代码本身的清晰性.可读性. As long as necessary(如有必要,尽量详尽 ...

  2. sublime注释插件与javascript注释规范

    前言 代码中注释是不可少的,即使是自己写的代码,过了一段时间之后再重看,如果没有注释记录的话,可能会想不到当初是这样实现的,尤其是在业务逻辑比较复杂的项目,注释变得尤为重要.怎么优雅的写有用的注释呢? ...

  3. Sublime Text3 插件:DocBlockr与javascript注释规范

    原:http://www.ithao123.cn/content-719950.html 1.引子 在写代码的时候,尤其是写脚本,最需要注释了.目前脚本.样式的注释格式都有一个已经成文的约定规范(这些 ...

  4. 【JavaScript 开发规范】

    Javascript 最佳实践http://sofish.de/1171http://sofish.de/1181 总是使用 ‘var’ √ 特性检测而非浏览器检测 √ 使用方括号记法 √ 使用&qu ...

  5. JavaScript语法规范

    推荐的JavaScript编码规范 阅读 247 评论 0 喜欢 0 作为前端开发人员,我相信每一个人都或多或少的用到原生的JavaScript,也正是因为用的人多,导致编码风格也是多种多样的,而不规 ...

  6. JavaScript编码规范指南

    前言 本文摘自Google JavaScript编码规范指南,截取了其中比较容易理解与遵循的点作为团队的JavaScript编码规范. JavaScript 语言规范 变量 声明变量必须加上 var  ...

  7. JavaScript编码规范[百度]

    JavaScript编码规范 1 前言   2 代码风格   2.1 文件   2.2 结构   2.2.1 缩进   2.2.2 空格   2.2.3 换行   2.2.4 语句   2.3 命名 ...

  8. JavaScript 代码规范

    所有的 JavaScript 项目适用同一种规范. JavaScript 代码规范 代码规范通常包括以下几个方面: 变量和函数的命名规则 空格,缩进,注释的使用规则. 其他常用规范-- 规范的代码可以 ...

  9. JavaScript 编码规范(中文/Airbnb公司版)

    Airbnb 是一家位于美国旧金山的公司,本文是其内部的 JavaScript编码规范,写得比较全面,在 Github 上有 16,686 + Star,3,080 + fork,前端开发人员可参考. ...

随机推荐

  1. Python基础知识学习_Day4

    一.函数 1.1函数特性 减少重复代码 使程序可扩展 使程序变得容易维护 1.2函数定义和使用 def 函数名(参数): ...... 函数体 ...... 返回值 函数定义主要特点如下: def:表 ...

  2. 所需的防伪表单字段“__RequestVerificationToken”不存在

    错误提示为:所需的防伪表单字段"__RequestVerificationToken"不存在. <%:Html.AntiForgeryToken()%> 在mvc4中的 ...

  3. 【Loadrunner】初学Loadrunner——场景设计

    在使用Loadrunner的时候,常常需要使用到场景设计.但是怎么设计一个满意的场景?如何开展? 首先可以点击tools > Create Controller Scenario > OK ...

  4. Request for the permission of type异常

    调用wcf调用的时候引发一个错误,错误信息如下: <Message>Request for the permission of type 'System.Configuration.Con ...

  5. C# 去除文件和文件夹的只读属性

    当我们使用 DirectoryInfo dir = Directory.CreateDirectory(pathName) 创建目录或者创建一个文件后,有时作为临时文件用完以后需要删除掉,使用File ...

  6. sql server 自定义split 标值函数

    自定义一个函数,分隔一个以分隔符的隔开字符串,例如把'1,3,5,7,9' 变成 数字1 3 5 7 9的结果集. 自定义标值函数: ),)) )) --实现split功能 的函数 as begin ...

  7. 字符串ID转换成字符串名字

    select  U.CnName+','  from f_splitstr('1828,1055333,1,1035681,752,494,22549,219,23860,478,23453,677, ...

  8. C#打印

    public partial class Form1 : Form { PrintDocument printDocument; StringReader lineReader = null; pub ...

  9. android 5.0 -- Ripple 效果

    Ripple 水波纹效果,也就是涟漪效果. 波纹效果有两种: 1,波纹有边界:波纹涟漪效果只是显示在控件内部 android:background="?android:attr/select ...

  10. "ApplicationDbContext"(泛指之类的数据库上下文模型)上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库。

    一,在我使用自动生成数据库的时候,当你改变了数据库就会出现下面问题 "ApplicationDbContext"(泛指之类的数据库上下文模型)上下文的模型已在数据库创建后发生更改. ...