Recommended coding standards
The following are the coding standards that the Cocos Creator development team use. They are included in the manual for game developers` and tool developers' reference.
Naming standards
When we name the variables, functions and living examples, we use camelCase nomenclature
// bad var FOOBar = {}; var foo_bar = {}; function FOOBar () {} // good var fooBar = {}; function fooBar () {}When we name types or modules, we use PascalCase nomenclature
// bad var foobar = cc.Class({ foo: 'foo', bar: 'bar', }); var foobar = require('foo-bar'); // good var FooBar = cc.Class({ foo: 'foo', bar: 'bar', }); var FooBar = require('foo-bar');Use underscores
_when naming private attributes// bad this.__firstName__ = 'foobar'; this.firstName_ = 'foobar'; // good this._firstName = 'foobar';We use dash nomenclature for files
// bad fooBar.js FooBar.js // good foo-bar.js
Grammar standards
Use
{}to create an object// bad var obj = new Object(); // good var obj = {};Use
[]to create an array// bad var array = new Array(); // good var array = [];Try your best to use single quotation marks
''to define a string in js code// bad var str = "Hello World"; // good var str = 'Hello World';When defining multi-lines string, try your best to use
+// bad const errorMessage = 'This is a super long error that was thrown out because of Batman. When you stop to think about how Batman had anything to do with this, you would get nowhere fast.'; // bad const errorMessage = 'This is a super long error that was thrown out because \ of Batman. When you stop to think about how Batman had anything to do \ with this, you would get nowhere \ fast.'; // good const errorMessage = 'This is a super long error that was thrown out because ' + 'of Batman. When you stop to think about how Batman had anything to do ' + 'with this, you would get nowhere fast.';Use
===and!==rather than==and!=.
Grammar standards
Choose quadruple spacing or double spacing for indentation according to your own habits and the primary code writer's format.
// bad function() { ∙var name; } // very bad function() { ∙∙<tab>∙∙var name; } // good function() { ∙∙var name; } // good function() { ∙∙∙∙var name; }Try to put
{and the expression in the same line// bad if ( isFoobar ) { } // good if ( isFoobar ) { } // bad function foobar() { } // good function foobar() { } // bad var obj = { foo: 'foo', bar: 'bar', } // good var obj = { foo: 'foo', bar: 'bar', }Put a space before
{// bad function test(){ console.log('test'); } // good function test() { console.log('test'); } // bad dog.set('attr',{ age: '1 year', breed: 'Bernese Mountain Dog', }); // good dog.set('attr', { age: '1 year', breed: 'Bernese Mountain Dog', });Please put a space before
(of the logic state expressions (if,while)// bad if(isJedi) { fight (); } // good if (isJedi) { fight(); }Please put a space between operators
// bad var x=y+5; // good var x = y + 5;Put a space between Block definitions
// bad if (foo) { return bar; } return baz; // good if (foo) { return bar; } return baz; // bad const obj = { foo() { }, bar() { }, }; return obj; // good const obj = { foo() { }, bar() { }, }; return obj; // bad const arr = [ function foo() { }, function bar() { }, ]; return arr; // good const arr = [ function foo() { }, function bar() { }, ]; return arr;Do not use a comma to define
// bad var story = [ once , upon , aTime ]; // good var story = [ once, upon, aTime, ]; // bad var hero = { firstName: 'Ada' , lastName: 'Lovelace' , birthYear: 1815 , superPower: 'computers' }; // good var hero = { firstName: 'Ada', lastName: 'Lovelace', birthYear: 1815, superPower: 'computers', };