# javascript 编写规范
::: details 目录
[[toc]]
:::
## JSDoc 注释规范
### JSDoc 注释规则
#### JSDoc注释一般应该放置在方法或函数声明之前,它必须以\/ \*\*开始,以便由 JSDoc 解析器识别。其他任何以 \/\* , \/\*\*\* 或者超过3个星号的注释,都将被JSDoc解析器忽略。如下所示:
```javascript
/*
** 一段简单的 JSDoc 注释。
*/
```
#### JSDoc 的注释效果
假如我们有一段这样的代码,没有任何注释,看起来是不是有一定的成本。
```javascript
function Book(title, author){
this.title=title;
this.author=author;
}
Book.prototype={
getTitle:function(){
return this.title;
},
setPageNum:function(pageNum){
this.pageNum=pageNum;
}
};
```
如果使用了 JSDoc 注释该代码后,代码的可阅读性就大大的提高了。
```javascript
/**
* Book类,代表一个书本.
* @constructor
* @param {string} title - 书本的标题.
* @param {string} author - 书本的作者.
*/
function Book(title, author){
this.title=title;
this.author=author;
}
Book.prototype={
/**
* 获取书本的标题
* @returns {string|*} 返回当前的书本名称
*/
getTitle:function(){
return this.title;
},
/**
* 设置书本的页数
* @param pageNum {number} 页数
*/
setPageNum:function(pageNum){
this.pageNum=pageNum;
}
};
```
### @constructor 构造函数声明注释
@constructor明确一个函数是某个类的构造函数。
### @param 参数注释
我们通常会使用@param来表示函数、类的方法的参数,@param是 JSDoc 中最常用的注释标签。参数标签可表示一个参数的参数名、参数类型和参数描述的注释。如下所示:
```javascript
/**
* @param {String} wording 需要说的句子
*/
function say(wording){
console.log(wording);
}
```
### @return 返回值注释
@return表示一个函数的返回值,如果函数没有显示指定返回值可不写。如下所示:
```javascript
/**
* @return {Number} 返回值描述
*/
```
### @example 示例注释
@example通常用于表示示例代码,通常示例的代码会另起一行编写,如下所示:
```javascript
/**
* @example
* multiply(3, 2);
*/
```
### 其他常用注释
1. @overview对当前代码文件的描述。
2. @copyright代码的版权信息。
3. @author []代码的作者信息。
4. @version当前代码的版本。
### 更多参考
如果想了解更多的 JSDoc 注释的内容,可参考下面的链接。
[JSDoc 文档](https://jsdoc.app/index.html)