22. 命名规则
最后更新于:2022-04-01 21:12:47
* [22.1](https://github.com/yuche/javascript#22.1) 避免单字母命名。命名应具备描述性。
~~~
// bad
function q() {
// ...stuff...
}
// good
function query() {
// ..stuff..
}
~~~
* [22.2](https://github.com/yuche/javascript#22.2) 使用驼峰式命名对象、函数和实例。
~~~
// bad
const OBJEcttsssss = {};
const this_is_my_object = {};
function c() {}
// good
const thisIsMyObject = {};
function thisIsMyFunction() {}
~~~
* [22.3](https://github.com/yuche/javascript#22.3) 使用帕斯卡式命名构造函数或类。
~~~
// 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',
});
~~~
* [22.4](https://github.com/yuche/javascript#22.4) 使用下划线 `_` 开头命名私有属性。
~~~
// bad
this.__firstName__ = 'Panda';
this.firstName_ = 'Panda';
// good
this._firstName = 'Panda';
~~~
* [22.5](https://github.com/yuche/javascript#22.5) 别保存 `this` 的引用。使用箭头函数或 Function#bind。
~~~
// 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.6](https://github.com/yuche/javascript#22.6) 如果你的文件只输出一个类,那你的文件名必须和类名完全保持一致。
~~~
// file contents
class CheckBox {
// ...
}
export default CheckBox;
// in some other file
// bad
import CheckBox from './checkBox';
// bad
import CheckBox from './check_box';
// good
import CheckBox from './CheckBox';
~~~
* [22.7](https://github.com/yuche/javascript#22.7) 当你导出默认的函数时使用驼峰式命名。你的文件名必须和函数名完全保持一致。
~~~
function makeStyleGuide() {
}
export default makeStyleGuide;
~~~
* [22.8](https://github.com/yuche/javascript#22.8) 当你导出单例、函数库、空对象时使用帕斯卡式命名。
~~~
const AirbnbStyleGuide = {
es6: {
}
};
export default AirbnbStyleGuide;
~~~
';