Skip to content

JavaScript代码格式规范

1. 文件

[建议] JavaScript 文件使用无 BOMUTF-8 编码。
[建议] 在文件结尾处,保留一个空行。

2. 结构

2.1 缩进

[强制] 使用 2 个空格做为一个缩进层级,不允许使用 4 个空格 或 tab 字符。
[强制] switch 下的 casedefault 必须增加一个缩进层级。

2.2 空格

[强制] 二元运算符两侧必须有一个空格,一元运算符与操作对象之间不允许有空格。
[强制] 用作代码块起始的左花括号 { 前必须有一个空格。
[强制] if / else / for / while / function / switch / do / try / catch / finally 关键字后,必须有一个空格。
[强制] 在对象创建时,属性中的 : 之后必须有空格,: 之前不允许有空格。
[强制] 函数声明、具名函数表达式、函数调用中,函数名和 ( 之间不允许有空格。
[强制] ,; 前不允许有空格。
[强制] 在函数调用、函数声明、括号表达式、属性访问、if / for / while / switch / catch 等语句中,()[] 内紧贴括号部分不允许有空格。
[强制] 单行声明的数组与对象,如果包含元素,{}[] 内紧贴括号部分不允许包含空格。
[强制] 行尾不得有多余的空格。

2.3 换行

[强制] 每个独立语句结束后必须换行。
[强制] 每行不得超过 120 个字符。
[强制] 运算符处换行时,运算符必须在新行的行首。
[强制] 在函数声明、函数表达式、函数调用、对象创建、数组创建、for语句等场景中,不允许在 ,; 前换行。
[建议] 不同行为或逻辑的语句集,使用空行隔开,更易阅读。

2.4 语句

[强制] 不得省略语句结束的分号。
[强制] 在 if / else / for / do / while 语句中,即使只有一行,也不得省略块 {...}
[强制] 函数定义结束不允许添加分号。
[强制] IIFE 必须在函数表达式外添加 (,非 IIFE 不得在函数表达式外添加 (

3. 命名

[强制] 变量 使用 Camel命名法
[强制] 常量 使用 全部字母大写,单词间下划线分隔 的命名方式。
[强制] 函数 使用 Camel命名法
[强制] 函数的 参数 使用 Camel命名法
[强制] 使用 Pascal命名法
[强制] 类的 方法 / 属性 使用 Camel命名法
[强制] 枚举变量 使用 Pascal命名法枚举的属性 使用 全部字母大写,单词间下划线分隔 的命名方式。
[强制] 命名空间 使用 Camel命名法
[强制] 由多个单词组成的缩写词,在命名中,根据当前命名法和出现的位置,所有字母的大小写与首字母的大小写保持一致。
[强制] 类名 使用 名词
[建议] 函数名 使用 动宾短语
[建议] boolean 类型的变量使用 ishas 开头。
[建议] Promise对象动宾短语的进行时 表达。

Released under the MIT License.