推荐编码规范

    • 当我们为变量, 函数和实例命名时, 使用 camelCase 命名法.

    • 当我们为类或者模块命名时, 使用 PascalCase 命名法.

      1. var foobar = cc.Class({
      2. foo: 'foo',
      3. bar: 'bar',
      4. });
      5. var foobar = require('foo-bar');
      6. // good
      7. var FooBar = cc.Class({
      8. foo: 'foo',
      9. bar: 'bar',
      10. });
      11. var FooBar = require('foo-bar');
    • 使用前置下划线 _ 当我们为私有属性命名

      1. // bad
      2. this.__firstName__ = 'foobar';
      3. this.firstName_ = 'foobar';
      4. // good
      5. this._firstName = 'foobar';
    • 文件名我们采用 dash 命名法

      1. // bad
      2. fooBar.js
      3. FooBar.js
      4. // good
      5. foo-bar.js
    • 使用 {} 创建一个 object

      1. // bad
      2. var obj = new Object();
      3. // good
      4. var obj = {};
    • 尽可能在 js 代码中使用单引号 '' 来定义 string

      1. // bad
      2. var str = "Hello World";
      3. // good
      4. var str = 'Hello World';
    • 多行 string 定义时, 尽可能使用 + 定义

      1. // bad
      2. const errorMessage = 'This is a super long error that was thrown because of Batman. When you stop to think about how Batman had anything to do with this, you would get nowhere fast.';
      3. // bad
      4. const errorMessage = 'This is a super long error that was thrown because \
      5. of Batman. When you stop to think about how Batman had anything to do \
      6. with this, you would get nowhere \
      7. fast.';
      8. // good
      9. const errorMessage = 'This is a super long error that was thrown because ' +
      10. 'of Batman. When you stop to think about how Batman had anything to do ' +
      11. 'with this, you would get nowhere fast.';
    • 使用 ===!== 而不是 ==!=.

    • 根据个人习惯, 和原代码作者格式, 选择 4 个空格或者 2 个空格作为缩进

      1. // bad
      2. function() {
      3. var name;
      4. }
      5. // very bad
      6. function() {
      7. ∙∙<tab>∙∙var name;
      8. // good
      9. ∙∙var name;
      10. }
      11. // good
      12. function() {
      13. ∙∙∙∙var name;
      14. }
    • 尽可能将 { 和表达式放在同一行

      1. // bad
      2. if ( isFoobar )
      3. {
      4. }
      5. // good
      6. if ( isFoobar ) {
      7. }
      8. // bad
      9. function foobar()
      10. {
      11. }
      12. // good
      13. function foobar() {
      14. }
      15. // bad
      16. var obj =
      17. {
      18. foo: 'foo',
      19. bar: 'bar',
      20. }
      21. // good
      22. var obj = {
      23. foo: 'foo',
      24. bar: 'bar',
      25. }
    • 在逻辑状态表达式 ( if, while ) 的 ( 前请空一格

      1. // bad
      2. if(isJedi) {
      3. fight ();
      4. }
      5. // good
      6. if (isJedi) {
      7. fight();
      8. }
    • operator 之间请空一格

      1. // bad
      2. var x=y+5;
      3. // good
      4. var x = y + 5;
    • 在 Block 定义之间请空一行

      1. // bad
      2. if (foo) {
      3. return bar;
      4. }
      5. return baz;
      6. // good
      7. if (foo) {
      8. return bar;
      9. }
      10. // bad
      11. const obj = {
      12. foo() {
      13. },
      14. bar() {
      15. },
      16. };
      17. return obj;
      18. // good
      19. const obj = {
      20. foo() {
      21. },
      22. bar() {
      23. },
      24. };
      25. return obj;
      26. // bad
      27. const arr = [
      28. function foo() {
      29. },
      30. function bar() {
      31. },
      32. ];
      33. return arr;
      34. // good
      35. const arr = [
      36. function foo() {
      37. },
      38. function bar() {
      39. },
      40. ];
      41. return arr;
    • 不要使用前置逗号定义

      1. // bad
      2. var story = [
      3. once
      4. , upon
      5. , aTime
      6. ];
      7. // good
      8. var story = [
      9. once,
      10. upon,
      11. aTime,
      12. ];
      13. // bad
      14. var hero = {
      15. firstName: 'Ada'
      16. , lastName: 'Lovelace'
      17. , birthYear: 1815
      18. , superPower: 'computers'
      19. };
      20. // good
      21. var hero = {
      22. firstName: 'Ada',
      23. lastName: 'Lovelace',
      24. birthYear: 1815,
      25. };