• 格式化
    • 大小写一致
    • 调用函数的函数和被调函数应放在较近的位置

    格式化

    格式化是一件主观的事。如同这里的许多规则一样,这里并没有一定/立刻需要遵守的规则。可以在这里完成格式的自动化。

    大小写一致

    JS 是弱类型语言,合理的采用大小写可以告诉你关于变量/函数等的许多消息。

    这些规则是主观定义的,团队可以根据喜欢进行选择。重点在于无论选择何种风格,都需要注意保持一致性。

    反例:

    1. var DAYS_IN_WEEK = 7;
    2. var daysInMonth = 30;
    3. var songs = ['Back In Black', 'Stairway to Heaven', 'Hey Jude'];
    4. var Artists = ['ACDC', 'Led Zeppelin', 'The Beatles'];
    5. function eraseDatabase() {}
    6. function restore_database() {}
    7. class animal {}
    8. class Alpaca {}

    正例:

    1. var DAYS_IN_WEEK = 7;
    2. var DAYS_IN_MONTH = 30;
    3. var songs = ['Back In Black', 'Stairway to Heaven', 'Hey Jude'];
    4. var artists = ['ACDC', 'Led Zeppelin', 'The Beatles'];
    5. function eraseDatabase() {}
    6. function restoreDatabase() {}
    7. class Animal {}
    8. class Alpaca {}

    调用函数的函数和被调函数应放在较近的位置

    当函数间存在相互调用的情况时,应将两者置于较近的位置。

    理想情况下,应将调用其他函数的函数写在被调用函数的上方。

    反例:

    1. class PerformanceReview {
    2. constructor(employee) {
    3. this.employee = employee;
    4. }
    5. lookupPeers() {
    6. return db.lookup(this.employee, 'peers');
    7. }
    8. lookupMananger() {
    9. return db.lookup(this.employee, 'manager');
    10. }
    11. getPeerReviews() {
    12. let peers = this.lookupPeers();
    13. // ...
    14. }
    15. perfReview() {
    16. getPeerReviews();
    17. getManagerReview();
    18. getSelfReview();
    19. }
    20. getManagerReview() {
    21. let manager = this.lookupManager();
    22. }
    23. getSelfReview() {
    24. // ...
    25. }
    26. }
    27. let review = new PerformanceReview(user);
    28. review.perfReview();

    正例:

    1. class PerformanceReview {
    2. constructor(employee) {
    3. this.employee = employee;
    4. }
    5. perfReview() {
    6. getPeerReviews();
    7. getManagerReview();
    8. getSelfReview();
    9. }
    10. getPeerReviews() {
    11. let peers = this.lookupPeers();
    12. // ...
    13. }
    14. lookupPeers() {
    15. return db.lookup(this.employee, 'peers');
    16. }
    17. getManagerReview() {
    18. let manager = this.lookupManager();
    19. }
    20. lookupMananger() {
    21. return db.lookup(this.employee, 'manager');
    22. }
    23. getSelfReview() {
    24. // ...
    25. }
    26. }
    27. let review = new PerformanceReview(employee);
    28. review.perfReview();