js code standard - sibbay-ai/public GitHub Wiki
2017-10-04
- 旧代码包含的不符合以下规范的代码,不统一处理,但进行 bugfix 和重构时,修改后的代码需要遵循代码规范。
-
根据 javascript 普遍的社区规范,变量与方法命名建议采用首字母小写的骆驼式,而不建议采用火车式
-
示例:
var first_item // 火车式,不建议 var firstItem // 骆驼式,建议 function get_name() {} // 火车式,不建议 function getName() {} // 骆驼式,建议
-
例外情况: 部分 API 请求返回的后端封装的数据对象中,一些属性的命名为火车式,此时相关的 js 代码可以灵活处理:
getApp().api.user.get_family_member() .success((res)=> { let family_id = res.family_id })
-
所有自定义方法(即除去框架规定的方法,或一些生命周期方法如 onLoad)需要以 JSDoc 的方式进行方法注释,具体参考 JSDoc 文档:http://www.css88.com/doc/jsdoc/index.html
/** * 我是一个示例方法 * @param {string} x - 示例参数 */ exampleMethod: function(x) {}
-
微信小程序的
page({})
里定义的方法(除生命周期方法)需要按以上方式添加方法注释 -
所有内在逻辑比较复杂的方法,需要酌情在方法体内添加注释,便于其他阅读代码的人理解
-
js 文件头部需要添加注释以说明该文件用途,编写人,修改人,例如:
/** * utils.js * @usage 放置一些全局通用方法 * @author @ben7th, ... */
- 代码采用两格缩进
- 采用两个空格缩进,而不是采用制表符缩进(注意调整编辑器的设置)
function foo() { if (bar) { do.sth() } }
-
运算符两侧要求用空格隔开,例如:
var a = b + c for (let i = 0; i <= 100; i++) { .. }
-
++
,负号
等运算符不作此要求 -
单行花括弧内部要用空格隔开,例如:
setState({ visible: visible })
-
wxml, html, xml 等模板文档内,如果有花括弧,内部也要用空格隔开,例如:
<view class="{{ view_class }}">{{ view_text }}</view>
- 使用 es6 风格定义方法时,需要给参数加上括弧,即使是单参数的方法也是如此,例如:
const foo = ()=> {} const bar = (x)=> {} const fee = (x, y)=> {}
- 所有 require 需要写在文件的顶层命名空间,而不能写在方法体或对象体里,例如:
const foo = require('aaa/foo') // 可以 const bar = function() { let foo = require('fee') // 不行 }
- 采用这样的写法,else 部分不要额外换行:
if (foo === bar) { // .. } else { // .. }
- 所有判断变量是否相等的运算符,都要求写
===
而不写==