资讯专栏INFORMATION COLUMN

Javascript 注释规范

ChanceWong / 3128人阅读

摘要:代码注释规范一语法注释的说明语法写在注释块第一行这是注释的说明切换音频播放状态播放停止省略其它代码标签语法标签的说明语法说明文字学生学生的名字类型语法可与标签结合使用,如必传参数可选参数语法可与标签结合使用,如必传参数可选参数参数有

Javascript 代码注释规范 一、语法 1. 注释的说明

语法:写在注释块第一行

</>复制代码

  1. /**
  2. * events-function(这是注释的说明)
  3. * @description 切换音频播放状态(播放/停止)
  4. */
  5. togglePlay: function() {
  6. // 省略其它代码...
  7. }
2. 标签

语法:@tagName

</>复制代码

  1. /** @function */
  2. function fn() {
  3. }
3. 标签的说明

语法:- 说明文字

</>复制代码

  1. /**
  2. * @constructor Student - 学生
  3. * @param {string} name - 学生的名字
  4. */
  5. function Student(name) {
  6. }
4. 类型

语法:{typeName} (可与标签结合使用,如@param)

</>复制代码

  1. /**
  2. * @param {string} a 必传参数
  3. */
  4. function fn(a, b, c) {
  5. }
5. 可选参数

语法:[paramName] (可与标签结合使用,如@param)

</>复制代码

  1. /**
  2. * @param {string} a 必传参数
  3. * @param {number} [b] 可选参数
  4. */
  5. function fn(a, b) {
  6. }
6. 参数有默认值

语法:[paramName=value] (可与标签结合使用,如@param)

</>复制代码

  1. /**
  2. * @param {string} a 必传参数
  3. * @param {number} [c=666] 参数有默认值
  4. */
  5. function fn(a, c) {
  6. }
7. 链接

语法:[link text]{@link namepathOrURL}

</>复制代码

  1. /**
  2. * See {@link MyClass} and [MyClass"s foo property]{@link MyClass#foo}.
  3. * Also, check out {@link http://www.google.com|Google} and
  4. * {@link https://github.com GitHub}.
  5. */
二、示例 1. 函数

</>复制代码

  1. /**
  2. * 转换时间字符串为时间对象
  3. * @function _str2time
  4. * @param strTime {String} - e.g "2017-02-13 10:02:58" or "2017-02-13" or "9:10"
  5. * @param type {String} - e.g date, dateTime, time
  6. */
  7. function _str2time(strTime, type) {
  8. // 省略其它代码
  9. }
2. 类/构造函数

</>复制代码

  1. /**
  2. * 定时器
  3. * @class Timer
  4. */
  5. function Timer() {
  6. this._timeId = 0;
  7. this._eventId = -1;
  8. this.eventHandler = {
  9. "stop": {}
  10. };
  11. /**
  12. * 定时器是否处于停止状态
  13. * @memberof Timer
  14. * @member stopped
  15. * @instance
  16. */
  17. this.stopped = true;
  18. /**
  19. * 启动定时器
  20. * @memberof Timer
  21. * @instance
  22. * @method start
  23. * @param {function} handler - 定时器每次执行时调用的函数
  24. * @param {number} interval - 定时器执行的时间间隔
  25. */
  26. this.start = function (handler, interval) {
  27. this.stopped = false;
  28. let _recursion = function() {
  29. this._timeId = setTimeout(() => {
  30. handler()
  31. .then(() => {
  32. if (this.stopped) {
  33. clearTimeout(this._timeId);
  34. this._trigger("stop");
  35. return;
  36. }
  37. _recursion();
  38. })
  39. .catch(err => {
  40. clearTimeout(this._timeId);
  41. this.stopped = true;
  42. this._trigger("stop");
  43. if (err) throw new Error(err);
  44. });
  45. }, interval)
  46. }.bind(this);
  47. _recursion();
  48. }
  49. /**
  50. * 停止定时器
  51. * @memberof Timer
  52. * @instance
  53. * @method stop
  54. */
  55. this.stop = function () {
  56. this.stopped = true;
  57. }
  58. }
  59. /**
  60. * 监听事件
  61. * @memberof Timer
  62. * @instance
  63. * @method on
  64. * @param {string} type - 事件类型 e.g "stop"
  65. * @param {function} fn - 事件处理函数
  66. * @return {number} eventId - 事件处理函数Id,用于取消监听
  67. */
  68. Timer.prototype.on = function (type, fn) {
  69. let _eventId = fn.name || ++this._eventId;
  70. this.eventHandler[type][_eventId] = fn;
  71. return _eventId;
  72. }
  73. /**
  74. * 触发事件
  75. * @private
  76. */
  77. Timer.prototype._trigger = function (type) {
  78. let handlerMap = this.eventHandler[type];
  79. for (let key in handlerMap) {
  80. handlerMap[key]();
  81. }
  82. }
  83. /**
  84. * 取消监听事件
  85. * @memberof Timer
  86. * @instance
  87. * @method off
  88. * @param {string} type - 事件类型 e.g "stop"
  89. * @param {function} target - 事件处理函数Id或者函数名字
  90. */
  91. Timer.prototype.off = function (type, target) {
  92. let _target = (typeof target === "function") ? target.name : target;
  93. delete this.eventHandler[type][_target];
  94. }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107999.html

相关文章

  • Web前端开发规范手册

    摘要:规范目的为提高团队协作效率便于后台人员添加功能及前端后期优化维护输出高质量的文档特制订此文档。 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档。 文件规范 文件命名规则 文件名称统一用小写的英文字母、数字和下划线的组合,其中不得包含汉字、空格和特殊字符;命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个...

    wua_wua2012 评论0 收藏0
  • Web前端开发规范手册

    摘要:规范目的为提高团队协作效率便于后台人员添加功能及前端后期优化维护输出高质量的文档特制订此文档。 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档。 文件规范 文件命名规则 文件名称统一用小写的英文字母、数字和下划线的组合,其中不得包含汉字、空格和特殊字符;命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个...

    Tamic 评论0 收藏0
  • Web前端开发规范手册

    摘要:规范目的为提高团队协作效率便于后台人员添加功能及前端后期优化维护输出高质量的文档特制订此文档。 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档。 文件规范 文件命名规则 文件名称统一用小写的英文字母、数字和下划线的组合,其中不得包含汉字、空格和特殊字符;命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个...

    xiaotianyi 评论0 收藏0
  • Web前端开发规范手册

    摘要:书写规范微软雅黑网页制作细节区代码规范区是指代码的和之间的内容。 一、规范目的1.1 概述 ..................................................................................................................................... 1 二、...

    番茄西红柿 评论0 收藏0
  • 前端代码编写规范

    摘要:前端代码规范代码编写规范缩进每一层级由个空格组成,避免使用制表符进行缩进。单目运算符的操作数之间不应该用空白隔开语句中的表达式之间应当用空格隔开代码编写规范头部文档类型建议使用格式的。内联元素写在一行内,块状元素还有列表和表格要另起一行。 前端代码规范 JavaScript代码编写规范 缩进 每一层级由4个空格组成,避免使用制表符(Tab)进行缩进。 行的长度 每行长度不应该超过80个...

    liangdas 评论0 收藏0

发表评论

0条评论

ChanceWong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<