Node编码规范-公司协同开发需要

#Node编码规范 ## 编码规范 > ##### 空格与格式 采用2个空格缩进,而不是tab缩进。 空格在编辑器中与字符是等宽的,而tab可能因编辑器的设置不同。2个空格会让代码看起来更紧凑、明快。 > ##### 变量声明 永远用let声明变量,不加let时会将其变成全局变量,这样可能会意外污染上下文,或是被意外污染。 示例代码如下: ``` let assert = require('assert'); let fork = require('child_process').fork; let net = require('net'); let EventEmitter = require('events').EventEmitter; ``` >##### 操作符 在操作符前后需要加空格,比如+、-、*、%、=等操作符前后都应该存在一个空格,示例如下: ``` let foo = 'bar' + baz; ``` ``` if (true) { // some code } ``` >##### 单双引号的使用 在JSON中,严格的规范是要求字符串用双引号,内容中出现双引号时,需要转义。 由于双引号在别的场景下使用较多,在Node中使用字符串时尽量使用单引号,这样无需转义,如: ``` let html = '<a href="http://cnodejs.org">CNode</a>'; ``` >##### 分号 给表达式结尾添加分号。尽管JavaScript编译器会自动给行尾添加分号,但还是会带来一些误解,这里强制要求语法结束,添加分号。 >##### 逗号 逗号用于变量声明的分隔或是元素的分隔。逗号之后,必须有一个空格,隔开后面的元素,如: ``` someMethod(arg1, arg2, arg3); //true someMethod(arg1,arg2,arg3); //false ``` ##命名规范 * 类:所有首字母大写,如: ``` function Ucar{ //code } ``` * 变量 :小驼峰,如: ``` let adminUser = 'admin'; ``` * 方法: 小写驼峰,尽量采用动词或判断性词汇,已告知使用者具体作用,如: ``` let getUser = function () {}; let isAdmin = function () {}; User.prototype.getInfo = function () {}; ``` * 常量:单词的所有字母都大写,并用下划线分割,如: ``` let PINK_COLOR = "pink"; ``` * 文件: 尽量采用下划线分割单词,比如child_process.js和string_decode.js。如果你不想将文件暴露给其他用户,可以约定以下划线开头,如_linklist.js。 * 包 :包名应当适当短且有意义的,如: ``` let express = require('express'); ``` ##比较操作 在比较操作中,如果是无容忍的场景,请尽量使用===代替==,否则你会遇到下面这样不符合逻辑的结果: ``` '0' == 0; // true '' == 0 // true '0' === '' // false ``` 此外,当判断容忍假值时,可以无需使用===或==。在下面的代码中,当foo是0、undefined、null、false、''时,都会进入分支: ``` if (!foo) { // some code } ``` ##字面量 尽量使用{}、[]代替new Object()、new Array(),不要使用string、bool、number对象类型,即不要调用new String、new Boolean和new Number。 ##注解规范 推荐dox,dox的注释规范源自于JSDoc。可以通过注释生成对应的API文档. ``` /** * Queries some records * Examples: * ``` * query('SELECT * FROM table', function (err, data) { * // some code * }); * ``` * @param {String} sql Queries * @param {Function} callback Callback */ exports.query = function (sql, callback) { // ... }; ``` ## 参考链接 [nmpjs-coding-style](https://docs.npmjs.com/misc/coding-style)