name: js-google description: 基于Google官方JavaScript样式指南的JavaScript样式和最佳实践。此技能应在编写、审查或重构JavaScript代码时使用,以确保一致的样式并预防常见错误。触发涉及JavaScript、ES6、模块、JSDoc、命名约定或代码格式化的任务。
Google JavaScript最佳实践
基于Google官方JavaScript样式指南的全面JavaScript样式和最佳实践指南,专为AI代理和LLM设计。包含8个类别中的47条规则,按影响优先级排序,以指导自动重构和代码生成。
何时应用
在以下情况下参考这些指南:
- 编写新的JavaScript或ES6+代码
- 构建模块和管理导入/导出
- 添加JSDoc类型注释和文档
- 审查代码以保持命名和样式一致性
- 重构现有JavaScript代码
按优先级排序的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 模块系统与导入 | 关键 | module- |
| 2 | 语言特性 | 关键 | lang- |
| 3 | 类型安全与JSDoc | 高 | type- |
| 4 | 命名约定 | 高 | naming- |
| 5 | 控制流与错误处理 | 中高 | control- |
| 6 | 函数与参数 | 中 | func- |
| 7 | 对象与数组 | 中 | data- |
| 8 | 格式化与样式 | 低 | format- |
快速参考
1. 模块系统与导入(关键)
module-avoid-circular-dependencies- 防止循环导入导致的加载失败module-file-extension-in-imports- 在导入路径中包含.js扩展名module-named-exports-over-default- 优先使用命名导出以保持一致性module-no-duplicate-imports- 从同一文件仅导入一次module-no-import-aliasing- 保持原始导出名称module-source-file-structure- 遵循标准文件结构顺序
2. 语言特性(关键)
lang-const-over-let-over-var- 默认使用const,永不使用varlang-es6-classes-over-prototypes- 使用类语法而非原型操作lang-explicit-semicolons- 始终使用显式分号lang-no-eval- 永不使用eval或Function构造函数lang-no-modify-builtins- 永不修改内置原型lang-no-non-standard-features- 仅使用标准ECMAScript特性lang-no-primitive-wrappers- 永不使用原始包装对象lang-no-with-statement- 永不使用with语句
3. 类型安全与JSDoc(高)
type-cast-with-parentheses- 使用括号进行类型转换type-enum-annotations- 用静态字面值注释枚举type-explicit-nullability- 使用显式可空性修饰符type-jsdoc-required-for-exports- 要求为导出函数提供JSDoctype-template-parameters- 始终指定模板参数type-typedef-for-complex-types- 为复杂对象类型使用typedef
4. 命名约定(高)
naming-constant-case-for-constants- 为不可变值使用CONSTANT_CASEnaming-descriptive-over-brief- 优先使用描述性名称而非简短名称naming-file-naming-conventions- 使用小写加连字符或下划线naming-lowercamelcase-for-methods- 为方法和变量使用lowerCamelCasenaming-no-dollar-prefix- 避免在标识符中使用美元符号前缀naming-uppercamelcase-for-classes- 为类使用UpperCamelCase
5. 控制流与错误处理(中高)
control-comment-empty-catch- 文档化空的catch块control-for-of-over-for-in- 优先使用for-of而非for-incontrol-strict-equality- 使用严格相等,除非进行空值检查control-switch-default-last- 在switch中始终包含default casecontrol-throw-error-objects- 始终抛出Error对象
6. 函数与参数(中)
func-arrow-functions-for-nested- 为嵌套函数优先使用箭头函数func-arrow-parentheses- 始终在箭头参数周围使用括号func-default-parameters- 使用默认参数而非条件语句func-rest-parameters-over-arguments- 使用剩余参数而非argumentsfunc-spread-over-apply- 使用展开运算符而非apply
7. 对象与数组(中)
data-array-literals-over-constructor- 使用数组字面量而非Array构造函数data-destructuring-for-multiple-values- 为多个属性使用解构data-no-mixing-quoted-unquoted-keys- 永不混合引用和非引用的键data-object-literals-over-constructor- 使用对象字面量而非构造函数data-spread-over-concat-slice- 使用展开而非concat和slicedata-trailing-commas- 在多行字面量中使用尾随逗号
8. 格式化与样式(低)
format-braces-required- 始终为控制结构使用大括号format-column-limit- 限制行长为80字符format-one-statement-per-line- 每行放置一个语句format-single-quotes- 为字符串字面量使用单引号format-two-space-indent- 使用两空格缩进
如何使用
阅读个别参考文件以获取详细解释和代码示例:
完整编译文档
有关包含所有规则的完整编译指南,请参见AGENTS.md。
参考文件
| 文件 | 描述 |
|---|---|
| AGENTS.md | 包含所有规则的完整编译指南 |
| references/_sections.md | 类别定义和排序 |
| assets/templates/_template.md | 新规则的模板 |
| metadata.json | 版本和参考信息 |