对于现代JavaScript,我们推荐——如果存在语法糖可以简写,则简写。
下面列出一些具体的建议:
基本
- 2个空格缩进(与HTML,CSS一致),必须正确缩进
- 分号、逗号之后必须空格或转行
- 左大括号不转行
- 左大括号之前一定有空格
- 若左右大括号在一行,则大括号内侧必须有空格。例如
const obj = { a: 1, b: 2 }
- 指令(例如
if
、return
等)后一定有空格 - 双目运算符前后必须有空格
- 非必要不写分号(无行末分号)
- 使用单引号表示字符串(单引号比双引号简单)
变量
- 不使用
var
,没有显式赋值的变量必须用const
,其余用let
- 允许多个变量共用声明和初始化语句,逗号隔开,但不能太长。例如:
const a = 1, b = 2
- 变量名原则上使用小驼峰命名法(首字母小写,其余单词首字母大写),例如
userInfo
- 局部变量或临时变量允许简写变量名,例如在一个小函数中允许使用
p
指代period
- 非特殊场景下,变量名不得使用下划线
- 对象内容很短时,可以在一行内完成
- 对象的最后一个成员后,不得添加逗号
- 对象成员变量赋值时,若属性名称和读取的变量名一致,则必须简写。即
const obj = { token: token }
必须简写为const obj = { token }
控制
if
、else
、for
的执行语句块很短时,可以在行内完成,不必大括号展开。若换行,必须大括号展开。else
应该与if
的右大括号在同一行,此时else前后都有空格,即} else {
。- 尽可能使用逻辑截断
break
、return
等,减少else
的使用。
函数
- 函数定义时(函数头部)参数表前后都有空格。例如:
function isPrime (x) {}
- 函数调用时,函数名和参数表之间没有空格。例如
isPrime(5)
- 若箭头函数有且仅有一个参数,则参数表的小括号可以省略。基于能省则省的原则,此时小括号必须省略。如:
const print = msg => {
console.log(msg)
}
- 若 箭头函数 直接返回计算值( 只有一个参数,小括号可以不写;返回值只有一个,花括号和return可以不写 ),则必须省略为如下形式:
const sqr = x => x * x
注释
- 注释不要太多,不要啰嗦,写有价值、代码里面没有的内容。
- 注释双斜杠后有一个空格
// this is a comment
- 若所在行有代码,双斜杠前也有空格
- 原则上使用英文注释
- 对于接口函数等需要详细注释的内容,参考具体的接口文档要