本文档概述了 Airbnb JavaScript 风格指南中使用的代码风格和格式约定。它涵盖了空白符使用、标点符号(逗号、分号)、代码块、注释以及其他提高代码可读性和可维护性的风格元素。有关函数、类或模块等特定 JavaScript 语言功能的信息,请参阅JavaScript 风格指南。
本文档中的风格约定通过 eslint-config-airbnb-base 包中的 ESLint 规则强制执行。
Airbnb JavaScript 风格指南将风格和格式规则组织成几个类别
来源:README.md2561-3060 packages/eslint-config-airbnb-base/rules/style.js1-534
一致的空白符使用对于代码可读性至关重要。风格指南对空白符的各个方面都有具体规定。
来源:README.md2564-2581 packages/eslint-config-airbnb-base/rules/style.js123-147 packages/eslint-config-airbnb-base/rules/style.js205-212
下表总结了关键的间距规则
| 上下文 | 规则 | 示例 |
|---|---|---|
| 区块 | 开括号前有 1 个空格 | function test() { |
| 函数括号 | 匿名函数后有空格,命名函数后无空格 | function () {} 对比 function foo() {} |
| 控制语句 | 括号前有 1 个空格 | if (condition) { |
| 运算符 | 运算符周围有空格 | const x = y + 5; |
| 对象花括号 | 内部有空格 | { foo: 'bar' } |
| 数组方括号 | 内部无空格 | [1, 2, 3] |
| 括号 | 内部无空格 | if (condition) |
| 注释 | // 或 /* 后有空格 | // comment |
来源:README.md2582-2611 README.md2635-2645 packages/eslint-config-airbnb-base/rules/style.js480-492
该指南为方法链、多行语句和空行提供了具体规则
来源:README.md2673-2717 README.md2721-2775 packages/eslint-config-airbnb-base/rules/style.js402-414 packages/eslint-config-airbnb-base/rules/style.js322
逗号风格影响可读性并确保清晰的 Git 差异。
来源:README.md3062-3143 packages/eslint-config-airbnb-base/rules/style.js42-48 packages/eslint-config-airbnb-base/rules/style.js51
需要使用分号以防止 ASI (自动分号插入) 问题
来源:README.md3061-3143 packages/eslint-config-airbnb-base/rules/style.js464-471
正确的代码块格式可以提高代码清晰度
if 语句且包含 else 的情况,将 else 放在闭花括号的同一行if 语句包含 return 时,避免不必要的 else 代码块来源:README.md2236-2346 packages/eslint-config-airbnb-base/rules/style.js21
有意义、一致的命名可以提高代码可维护性。Airbnb 风格指南涵盖了几种命名约定
附加命名指南
来源:README.md45 packages/eslint-config-airbnb-base/rules/style.js24 packages/eslint-config-airbnb-base/rules/style.js254-259 packages/eslint-config-airbnb-base/rules/style.js378-383
适当的注释可以提高代码的可读性和可维护性
/** ... *///// FIXME: 标记问题// TODO: 标记待办事项/解决方案来源:README.md2422-2558 packages/eslint-config-airbnb-base/rules/style.js507-517
风格指南通过 ESLint 规则强制执行,这些规则主要在 eslint-config-airbnb-base/rules/style.js 文件中定义。
主要的风格相关 ESLint 规则类别
| 类别 | 目的 | 示例规则 |
|---|---|---|
| 空白字符 | 控制间距和缩进 | indent, linebreak-style, max-len |
| 逗号 | 强制逗号风格和间距 | comma-dangle, comma-spacing |
| 分号 | 确保正确使用分号 | semi, semi-spacing |
| 区块 | 控制代码块格式 | brace-style, nonblock-statement-body-position |
| 命名 | 强制命名约定 | camelcase, new-cap, no-underscore-dangle |
| 注释 | 控制注释格式 | spaced-comment, capitalized-comments |
来源:packages/eslint-config-airbnb-base/rules/style.js1-534
一致的代码风格和格式是 Airbnb JavaScript 风格指南的关键组成部分。这些指南确保代码具有清晰的视觉结构,易于阅读和维护。遵循这些约定可以使
这些风格约定通过 ESLint 配置实现,允许通过开发工具和 CI/CD 流水线自动强制执行风格指南。