Home

Awesome

Airbnb JavaScript Style Guide() {

用更合理的方式写 JavaScript

Downloads Downloads Gitter

ES5 的编码规范请查看版本一版本二

翻译自 Airbnb JavaScript Style Guide

<a name="table-of-contents"></a>

目录

  1. 类型
  2. 引用
  3. 对象
  4. 数组
  5. 解构
  6. 字符串
  7. 函数
  8. 箭头函数
  9. 构造函数
  10. 模块
  11. 迭代器和生成器
  12. 属性
  13. 变量
  14. 提升
  15. 比较运算符和等号
  16. 代码块
  17. 注释
  18. 空白
  19. 逗号
  20. 分号
  21. 类型转换
  22. 命名规则
  23. 存取器
  24. 事件
  25. jQuery
  26. ECMAScript 5 兼容性
  27. ECMAScript 6 编码规范
  28. 测试
  29. 性能
  30. 相关资源
  31. 使用情况
  32. 其他翻译
  33. JavaScript 编码规范说明
  34. 讨论 JavaScript
  35. 贡献者
  36. 许可协议

<a name="types"></a>

类型

⬆ 返回目录

<a name="references"></a>

引用

⬆ 返回目录

<a name="objects"></a>

对象

<a name="es6-computed-properties"></a>

<a name="es6-object-shorthand"></a>

<a name="es6-object-concise"></a>

⬆ 返回目录

<a name="arrays"></a>

数组

<a name="es6-array-spreads"></a>

⬆ 返回目录

<a name="destructuring"></a>

解构

⬆ 返回目录

<a name="strings"></a>

Strings

<a name="es6-template-literals"></a>

⬆ 返回目录

<a name="functions"></a>

函数

<a name="es6-rest"></a>

<a name="es6-default-parameters"></a>

为什么?因为这样的写法让人感到很困惑。

var b = 1;
// bad
function count(a = b++) {
  console.log(a);
}
count();  // 1
count();  // 2
count(3); // 3
count();  // 3

⬆ 返回目录

<a name="arrow-functions"></a>

箭头函数

⬆ 返回目录

<a name="constructors"></a>

构造器

⬆ 返回目录

<a name="modules"></a>

模块

⬆ 返回目录

<a name="iterators-and-generators"></a>

Iterators and Generators

为什么?因为它们现在还没法很好地编译到 ES5。 (译者注:目前(2016/03) Chrome 和 Node.js 的稳定版本都已支持 generators)

⬆ 返回目录

<a name="properties"></a>

属性

⬆ 返回目录

<a name="variables"></a>

变量

⬆ 返回目录

<a name="hoisting"></a>

Hoisting

⬆ 返回目录

<a name="comparison-operators--equality"></a>

比较运算符和等号

⬆ 返回目录

<a name="blocks"></a>

代码块

⬆ 返回目录

<a name="comments"></a>

注释

⬆ 返回目录

<a name="whitespace"></a>

空白

⬆ 返回目录

<a name="commas"></a>

逗号

⬆ 返回目录

<a name="semicolons"></a>

分号

⬆ 返回目录

<a name="type-casting--coercion"></a>

类型转换

⬆ 返回目录

<a name="naming-conventions"></a>

命名规则

⬆ 返回目录

<a name="accessors"></a>

存取器

⬆ 返回目录

<a name="events"></a>

事件

⬆ 返回目录

jQuery

⬆ 返回目录

<a name="ecmascript-5-compatibility"></a>

ECMAScript 5 兼容性

⬆ 返回目录

<a name="ecmascript-6-styles"></a>

ECMAScript 6 规范

  1. 箭头函数
  2. 对象方法简写
  3. 对象属性简写
  4. 对象中的可计算属性
  5. 模板字符串
  6. 解构
  7. 默认参数
  8. Rest
  9. 数组 Spreads
  10. Let 及 Const
  11. 迭代器和生成器
  12. 模块

⬆ 返回目录

<a name="testing"></a>

测试

⬆ 返回目录

<a name="performance"></a>

性能

⬆ 返回目录

<a name="resources"></a>

相关资源(英文)

了解 ES6

看看这个

工具

其他风格指南

其他风格

拓展阅读

书籍

博客

播客

⬆ 返回目录

<a name="in-the-wild"></a>

使用情况

下列组织应用这份风格指南。

⬆ 返回目录

<a name="translation"></a>

翻译

这份风格指南也有其他语言的译本:

<a name="the-javascript-style-guide-guide"></a>

JavaScript 编码规范说明

<a name="chat-with-us-about-javascript"></a>

讨论 JavaScript

贡献者

许可协议

(The MIT License)

Copyright (c) 2014 Airbnb

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

⬆ 返回目录

修订

我们鼓励您派生本指南和更改规则以适应您的团队需求。您可以在下方列出对本风格指南的修改,以便定期更新本指南而无需处理合并冲突。

};