命名规则

  • 22.1 避免单字母命名。命名应具备描述性。

    1. // bad
    2. function q() {
    3. // ...stuff...
    4. }
    5. // good
    6. function query() {
    7. // ..stuff..
    8. }
  • 22.2 使用驼峰式命名对象、函数和实例。

    1. // bad
    2. const OBJEcttsssss = {};
    3. const this_is_my_object = {};
    4. function c() {}
    5. // good
    6. const thisIsMyObject = {};
    7. function thisIsMyFunction() {}
  • 22.3 使用帕斯卡式命名构造函数或类。

    1. // bad
    2. function user(options) {
    3. this.name = options.name;
    4. }
    5. const bad = new user({
    6. name: 'nope',
    7. });
    8. // good
    9. class User {
    10. constructor(options) {
    11. this.name = options.name;
    12. }
    13. }
    14. const good = new User({
    15. name: 'yup',
    16. });
  • 22.4 不要使用下划线 _ 结尾或开头来命名属性和方法。

    1. // bad
    2. this.__firstName__ = 'Panda';
    3. this.firstName_ = 'Panda';
    4. this._firstName = 'Panda';
    5. // good
    6. this.firstName = 'Panda';
  • 22.5 别保存 this 的引用。使用箭头函数或 Function#bind。

    1. // bad
    2. function foo() {
    3. const self = this;
    4. return function() {
    5. console.log(self);
    6. };
    7. }
    8. // bad
    9. function foo() {
    10. const that = this;
    11. return function() {
    12. console.log(that);
    13. };
    14. }
    15. // good
    16. function foo() {
    17. return () => {
    18. console.log(this);
    19. };
    20. }
  • 22.6 如果你的文件只输出一个类,那你的文件名必须和类名完全保持一致。

    1. // file contents
    2. class CheckBox {
    3. // ...
    4. }
    5. export default CheckBox;
    6. // in some other file
    7. // bad
    8. import CheckBox from './checkBox';
    9. // bad
    10. import CheckBox from './check_box';
    11. // good
    12. import CheckBox from './CheckBox';
  • 22.7 当你导出默认的函数时使用驼峰式命名。你的文件名必须和函数名完全保持一致。

    1. function makeStyleGuide() {
    2. }
    3. export default makeStyleGuide;
  • 22.8 当你导出单例、函数库、空对象时使用帕斯卡式命名。

    1. const AirbnbStyleGuide = {
    2. es6: {
    3. }
    4. };
    5. export default AirbnbStyleGuide;