整理下,参考了许多库,谢谢那些无私奉献的大牛,愿上帝保佑你们。
1、构造器采用驼峰式命名,并且首字母大写。如:
function DialogManager ( config ) { statement; }
2、枚举类型变量采用驼峰式命名,并且首字母大写。属性名单词全部大写,单词间以下划线分隔。如:
var QueueError = { QUEUE_LIMIT_EXCEEDED: -100, FILE_EXCEEDS_SIZE_LIMIT: -110, ZERO_BYTE_FILE: -120, INVALID_FILETYPE: -130 };
3、对象的属性或方法名采用小驼峰式(lower camel-case),如"init", "bindEvent", "updatePosition":
Dialog.prototype = { init: function () {}, bindEvent: function () {}, updatePosition: function () {} };
4、私有变量名用下划线开头。如:"_current", "_defaultConfig":
function Dialog( config ) { this._defaultConfig = {}; }
5、常量名全部大写,单词间用下划线分隔。如:“CSS_BTN_CLOSE”, "TXT_LOADING":
function Dialog( config ) { this.DEFAULT_CONFIG = { CSS_BTN_CLOSE: ‘x-btn-cls‘, TXT_LOADING: ‘加载中...‘ }; }
6、方法的返回值如果是布尔值,则必须以is、can、has、should等为前缀:
function isGroupId( id ) { return (id + ‘‘).indexOf( ‘G‘ ) > 0; }
7、简写单词在变量名中出现时也应该遵循驼峰式写法。
// 正确 function getXml () {} function getId () {} function getHtml () {} var xmlDocument; // 错误 function getXML(){} function getID(){} function getHTML(){} var XMLDocument; 在闭包中访问所在实例this指针时,统一使用变量me指向。 var me = this; setTimeout( function() { // ... }, 1000 ); // 错误 var ins = this; setTimeout( function() { // ins. }, 1000 );
9、符合下列场景的变量,请使用对应的命名
变量名 | 变量含义 | 示例 |
e | Event对象 |
$( ‘#a‘ ).click( function( e ){ // ... }); |
el | HTMLElement |
var el =$( ‘div.demo‘ )[ 0 ]; |
ex | Exception |
try{ // statement } catch( ex ){ console.log( ex ); } |
opts | JSON结构的配置项 |
function MyClass( opts ){ this._defaultOpts = {...}; K.mix( this._defaultOpts, opts ); } |
10、所有Zepto/jQuery对象,变量名以$符号开头,如:
var $div = $(‘<div></div>‘);
11、变量命名前缀应当是名词,与函数区分开来,函数应当是动词
// 好的写法 var count = 10, myName = ‘Abcd‘, found = true; // 不好的写法 var getCount = 10, isFound = true; // 好的写法 function getName() { return myName; } // 不好的写法 function theName(){ return myName; }
以上,谢谢大家。