# 命名规则

  • 23.1 避免用一个字母命名,让你的命名可描述。 eslint: id-length (opens new window)

    // bad
    function q() {
      // ...
    }
    
    // good
    function query() {
      // ...
    }
    

  • 23.2 用小驼峰式命名你的对象、函数、实例。 eslint: camelcase (opens new window)

    // bad
    const OBJEcttsssss = {};
    const this_is_my_object = {};
    function c() {}
    
    // good
    const thisIsMyObject = {};
    function thisIsMyFunction() {}
    

  • 23.3 用大驼峰式命名类。 eslint: new-cap (opens new window)

    // bad
    function user(options) {
      this.name = options.name;
    }
    
    const bad = new user({
      name: 'nope',
    });
    
    // good
    class User {
      constructor(options) {
        this.name = options.name;
      }
    }
    
    const good = new User({
      name: 'yup',
    });
    

  • 23.4 不要用前置或后置下划线。 eslint: no-underscore-dangle (opens new window)

    Why? JavaScript 没有私有属性或私有方法的概念。尽管前置下划线通常的概念上意味着“private”,事实上,这些属性是完全公有的,因此这部分也是你的API的内容。这一概念可能会导致开发者误以为更改这个不会导致崩溃或者不需要测试。 如果你想要什么东西变成“private”,那就不要让它在这里出现。

    // bad
    this.__firstName__ = 'Panda';
    this.firstName_ = 'Panda';
    this._firstName = 'Panda';
    
    // good
    this.firstName = 'Panda';
    

  • 23.5 不要保存引用this, 用箭头函数或函数绑定——Function#bind (opens new window).

    // bad
    function foo() {
      const self = this;
      return function () {
        console.log(self);
      };
    }
    
    // bad
    function foo() {
      const that = this;
      return function () {
        console.log(that);
      };
    }
    
    // good
    function foo() {
      return () => {
        console.log(this);
      };
    }
    

  • 22.9 简称和缩写应该全部大写或全部小写。

    Why? 名字都是给人读的,不是为了适应电脑的算法的。

    // bad
    import SmsContainer from './containers/SmsContainer';
    
    // bad
    const HttpRequests = [
      // ...
    ];
    
    // good
    import SMSContainer from './containers/SMSContainer';
    
    // good
    const HTTPRequests = [
      // ...
    ];
    
    // best
    import TextMessageContainer from './containers/TextMessageContainer';
    
    // best
    const Requests = [
      // ...
    ];
    

回到顶部