javascript (JavaScript 代码风格指南)
148,011
Stars
26,514
Forks
3,640
Watchers
169
Open Issues
MIT
许可证
JavaScript
语言
2012-11-01
创建时间
2026-04-16
最近更新
项目能做什么
JavaScript 代码风格指南。
来源:基于仓库元数据
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
Airbnb JavaScript Style Guide 中文使用说明
项目简介
airbnb/javascript 是由 Airbnb 维护的一套广受欢迎的 JavaScript 代码风格规范(JavaScript Style Guide)。其目标是提供一种合理、清晰且不易出错的 JavaScript 编写方式。该规范不仅涵盖语法使用指南,还对应提供了官方的 ESLint 配置包(如 eslint-config-airbnb 和 eslint-config-airbnb-base),方便开发者在项目中自动进行代码规范检查。
核心功能
- 全面的代码规范指南:覆盖数据类型(Types)、变量引用(References)、对象(Objects)、数组、解构、函数与箭头函数、模块(Modules)等近 40 个维度的编写建议与最佳实践。
- 规则附带原因与反例:每个小项均明确说明“为什么这样写(Why)”,并提供清晰的
// bad与// good代码对比。 - ESLint 规则映射:规范条目直接关联对应的 ESLint 规则(如
prefer-const、no-var、no-new-object等),方便快速配置自动化校验。 - 扩展指南集成:包含或链接至针对 React、CSS-in-JavaScript、CSS & Sass、Ruby 等生态的专项规范。
适合谁用
- 想要规范个人或团队 JavaScript/ES6+ 编码习惯的前端及全栈开发者。
- 准备在项目中引入 ESLint 并寻求行业成熟校验规则集的团队。
安装步骤
说明:当前 README 原文主要展示编码规范正文,未在正文中直接提供完整的终端安装命令。具体安装及集成命令请查看原仓库或对应 npm 包(如
eslint-config-airbnb、eslint-config-airbnb-base)的文档说明。
配置说明
根据 README 的前提说明,该规范的使用建立在以下环境假设之上:
1. 转译工具:假设项目中使用了 Babel,并要求配合使用 babel-preset-airbnb 或同等配置。
2. 兼容垫片(Polyfills):假设在应用中安装了垫片库,例如使用 airbnb-browser-shims 或同等实现。
3. 环境约束:symbol 和 bigint 无法被完全 polyfill,因此在目标运行环境原生不支持时,不应使用。
(注:详细的 ESLint 配置文件设置及参数,原文未详细展开,请查看原仓库及其 npm 发布包)
常见问题
- 变量声明应该优先用哪个?
- 强制所有引用优先使用
const,禁止使用var(避免变量被意外重新赋值引入 bug)。 - 若确实需要重新赋值,使用块级作用域的
let,同样禁止使用函数级作用域的var。 - 创建对象推荐使用什么语法?
- 推荐使用字面量语法(
const item = {};),避免使用构造函数new Object()。
原始 README 摘录(英文原文,节选前 3000 字符)
# Airbnb JavaScript Style Guide() {
*A mostly reasonable approach to JavaScript*
> **Note**: this guide assumes you are using [Babel](https://babeljs.io), and requires that you use [babel-preset-airbnb](https://npmjs.com/babel-preset-airbnb) or the equivalent. It also assumes you are installing shims/polyfills in your app, with [airbnb-browser-shims](https://npmjs.com/airbnb-browser-shims) or the equivalent.
[](https://www.npmjs.com/package/eslint-config-airbnb)
[](https://www.npmjs.com/package/eslint-config-airbnb-base)
[](https://gitter.im/airbnb/javascript?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
This guide is available in other languages too. See [Translation](#translation)
Other Style Guides
- [ES5 (Deprecated)](https://github.com/airbnb/javascript/tree/es5-deprecated/es5)
- [React](react/)
- [CSS-in-JavaScript](css-in-javascript/)
- [CSS & Sass](https://github.com/airbnb/css)
- [Ruby](https://github.com/airbnb/ruby)
## Table of Contents
1. [Types](#types)
1. [References](#references)
1. [Objects](#objects)
1. [Arrays](#arrays)
1. [Destructuring](#destructuring)
1. [Strings](#strings)
1. [Functions](#functions)
1. [Arrow Functions](#arrow-functions)
1. [Classes & Constructors](#classes--constructors)
1. [Modules](#modules)
1. [Iterators and Generators](#iterators-and-generators)
1. [Properties](#properties)
1. [Variables](#variables)
1. [Hoisting](#hoisting)
1. [Comparison Operators & Equality](#comparison-operators--equality)
1. [Blocks](#blocks)
1. [Control Statements](#control-statements)
1. [Comments](#comments)
1. [Whitespace](#whitespace)
1. [Commas](#commas)
1. [Semicolons](#semicolons)
1. [Type Casting & Coercion](#type-casting--coercion)
1. [Naming Conventions](#naming-conventions)
1. [Accessors](#accessors)
1. [Events](#events)
1. [jQuery](#jquery)
1. [ECMAScript 5 Compatibility](#ecmascript-5-compatibility)
1. [ECMAScript 6+ (ES 2015+) Styles](#ecmascript-6-es-2015-styles)
1. [Standard Library](#standard-library)
1. [Testing](#testing)
1. [Performance](#performance)
1. [Resources](#resources)
1. [In the Wild](#in-the-wild)
1. [Translation](#translation)
1. [The JavaScript Style Guide Guide](#the-javascript-style-guide-guide)
1. [Chat With Us About JavaScript](#chat-with-us-about-javascript)
1. [Contributors](#contributors)
1. [License](#license)
1. [Amendments](#amendments)
## Types
<a name="types--primitives"></a><a name="1.1"></a>
- [1.1](#types--primitives) **Primitives**: When you access a primitive type you work directly on its value.
- `string`
- `number`
- `boolean`
- `null`
- `undefined`
- `symbol`
- `bigint`
<br />
```javascript
const foo = 1;
let bar = foo;
bar = 9;
阅读完整原文
商业机会分析 规则生成(AI 未配置)
综合评分 54.5 分。该项目在“个人可实施性”维度得 60 分,“付费可能性”维度得 40.0 分,差异化空间 70.0 分(评分依据见评分卡)。
将 javascript 改造为垂直场景 SaaS
| 产品构想 | 保留核心能力,针对某一类用户(如某行业团队)做托管版,收取月费。 |
| 目标用户 | 有该需求的中小团队 / 独立站长 |
| 难度/周期 | 中 · 2~4 周(MVP) |
| 收费模式 | 订阅制(如 ¥29~99/月) |
| 竞争风险 | 需验证付费意愿;注意许可证合规 |
| 依据 | 数据支持的判断:许可证与关键词显示存在商用与付费场景 |
面向细分需求的二次开发产品
| 产品构想 | 基于 javascript 的核心能力,聚焦一个更窄的场景(如某平台、某行业)做差异化。 |
| 目标用户 | 该细分场景用户 |
| 难度/周期 | 中 · 2~6 周 |
| 收费模式 | 买断制 / 订阅制 / 广告 |
| 竞争风险 | 细分需求规模需验证 |
| 依据 | AI 推测:基于项目主题标签的判断 |
封装为在线小工具或 API 服务
| 产品构想 | 把项目最常用的一个功能做成网页小工具,靠流量变现或按量计费。 |
| 目标用户 | 搜索引擎带来的长尾用户 |
| 难度/周期 | 低 · 1~3 周 |
| 收费模式 | 免费引流 + 增值功能 / API 按量计费 |
| 竞争风险 | 同质化竞争,需做好 SEO |
| 依据 | AI 推测:基于技术栈与部署特征的判断 |
以上为规则引擎基于仓库公开数据生成的参考结论,包含推测成分,不构成投资或创业承诺;配置 AI 后可获得更深入的分析。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
| 项目 | 中文简介 | Stars | 语言 |
|---|---|---|---|
| Asabeneh/JavaScript-for-Everyone | 中文介绍暂未生成 A step by step guide to learn JavaScript and programming. Th |
1,237 | JavaScript |
| fsprojects/FSharpPlus | 中文介绍暂未生成 Extensions for F# |
942 | F# |
| leonidlebedev/javascript-airbnb | 中文介绍暂未生成 Перевод «JavaScript Style Guide» от Airbnb |
928 | - |
| parksb/javascript-style-guide | 中文介绍暂未生成 Airbnb JavaScript 스타일 가이드 |
431 | - |
| getify/eslint-plugin-proper-arrows | 中文介绍暂未生成 ESLint rules to ensure proper arrow function definitions |
311 | JavaScript |
| Sfedfcv/redesigned-pancake | 中文介绍暂未生成 Skip to content github / docs Code Issues 80 Pull requests 3 |
278 | - |
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。
项目优势与风险
| 技术成熟度 | 创建于 2012-11-01,最近推送 2026-04-16 |
| 社区活跃 | Star 148,011 / Fork 26,514 / Issue 169(数据支持,可自行核实) |
| 许可证 | MIT |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
快速开始(以仓库 README 为准)
git clone https://github.com/airbnb/javascript.git cd javascript # 请阅读仓库 README 获取确切安装步骤(依赖、配置、启动命令)
术语说明:Docker=应用容器(把程序和依赖打包运行);API Key=调用外部服务的密钥;Git Clone=把仓库代码下载到本地。常见错误:API Key 未配置 / 端口占用 / 数据库连接失败,多数项目在 README 的 Troubleshooting 章节有说明。