javascript&图片书写规范

  • 命名规范:
    常量名 全部大写并单词间用下划线分隔 如:CSS_BTN_CLOSE、TXT_LOADING 对象的属性或方法名
    小驼峰式(little camel-case) 如:init、bindEvent、updatePosition 示例:Dialog.prototype = {
    init: function () {},
    bindEvent: function () {},
    updatePosition: function () {}

    };
    类名(构造器) -->小驼峰式但首字母大写 -->如:Current、DefaultConfig 函数名 -->小驼峰式 -->如:current()、defaultConfig() 变量名 -->小驼峰式 -->如:current、defaultConfig 私有变量名 -->小驼峰式但需要用_开头 -->如:_current、_defaultConfig 变量名的前缀 -->续
  • 代码格式:
"()"前后需要跟空格
"="前后需要跟空格
","后面需要跟空格
JSON对象需格式化对象参数
if、while、for、do语句的执行体用"{}"括起来
  • "{}"格式如下:
if (a==1) {
    //代码
};
  • 避免额外的逗号:
var arr = [1,2,3,];

for-in循环体中必须用hasOwnProperty方法检查成员是否为自身成员,避免来自原型链上的污染。

  • 长语句可考虑断行:
TEMPL_SONGLIST.replace('{TABLE}', da['results'])
    .replace('{PREV_NUM}', prev)
    .replace('{NEXT_NUM}', next)
    .replace('{CURRENT_NUM}', current)
    .replace('{TOTAL_NUM}', da.page_total);

为了避免和JSLint的检验机制冲突,“.”或“+”这类操作符放在行尾。

/*global alert: true, console: true, top: true, setTimeout: true */
  • 使用严格的条件判断符。用===代替==,用!==代替!=,避免掉入==造成的陷阱在条件判断时,这样的一些值表示false
null
undefined与null相等
字符串''
数字0
NaN

在==时,则会有一些让人难以理解的陷阱。

undefined与null相等
一个是number一个是string时,会尝试将string转换为number
尝试将boolean转换为number
0或1
尝试将Object转换成number或string

而这些取决于另外一个对比量,即值的类型,所以对于0、空字符串的判断,建议使用===
。===会先判断两边的值类型,类型不匹配时为false

  • 下面类型的对象不建议用new构造:
new Number
new String
new Boolean
new Object //用{}代替
new Array //用[]代替

引用对象成员用obj.prop代替obj["prop"],除非属性名是变量。

  • 从number到string的转换:
/** 推荐写法*/
var a = 1;
typeof(a); //"number"
console.log(a); //1
var aa=a+'';
typeof(aa); //"string"
console.log(aa); //'1'
/** 不推荐写法*/
new String(a)或a.toString()

从string到number的转换,使用parseInt,必须显式指定第二个参数的进制。

/** 推荐写法*/
var a = '1';
var aa = parseInt(a,10);
typeof(a); //"string"
console.log(a); //'1'
typeof(aa); //"number"
console.log(aa); //1

从float到integer的转换。

/** 推荐写法*/
Math.floor/Math.round/Math.ceil
/** 不推荐写法*/
parseInt

字符串拼接应使用数组保存字符串片段,使用时调用join方法。避免使用+或+=的方式拼接较长的字符串,每个字符串都会使用一个小的内存片段,过多的内存片段会影响性能。

/**推荐的拼接方式array的push、join*/
var str=[],
    list=['测试A','测试B'];
for (var i=0 , len=list.length; i < len; i++) {
    str.push( '<div>'+ list[i] + '</div>');
};
console.log(str.join('')); //<div>测试A</div><div>测试B</div>
/** 不推荐的拼接方式+=*/
var str = '',
    list=['测试A','测试B'];
for (var i = 0, len = list.length; i< len; i++) {
    str+='<div>' + list[i] + '</div>';
};
console.log(str); //<div>测试A</div><div>测试B</div>
  • 尽量避免使用存在兼容性及消耗资源的方法或属性
不要使用with,void,evil,eval_r,innerText
  • 注重HTML分离, 减小reflow, 注重性能。

图片规范:

  • 命名应用小写英文、数字、_组合,便于团队其他成员理解。
header_btn.gif
header_btn2.gif
  • 页面元素类图片均放入img文件夹,
  • 测试用图片放于img/testimg文件夹,psd源图放入img/psdimg文件夹。
  • 图片格式仅限于gifpngjpg等。
  • png图片做图片时,要求图片格式为png-8格式,若png-8实在影响图片质量或其中有半透明效果,请为ie-6单独定义背景,并尽量避免使用半透明的png图片。
  • 背景图片请尽可能使用sprite技术, 减小http请求。

注释规范:

  • JAVASCRIPT、CSS文件注释需要标明作者、文件版本、创建/修改时间、重大版本修改记录、函数描述、文件版本、创建或者修改时间、功能、作者等信息。
/* * 注释块 */
  • 中间可添加如下信息
@file 文件名
@addon 把一个函数标记为另一个函数的扩张,另一个函数的定义不在源文件中
@argument 用大括号中的自变量类型描述一个自变量
@author 函数/类作者的姓名
@base 如果类是继承得来,定义提供的类名称
@class 用来给一个类提供描述,不能用于构造器的文档中
@constructor 描述一个类的构造器
@deprecated 表示函数/类已被忽略
@exception 描述函数/类产生的一个错误
@exec @extends 表示派生出当前类的另一个类
@fileoverview 表示文档块将用于描述当前文件,这个标签应该放在其它任何标签之前
@final 指出函数/类
@ignore 让jsdoc忽视随后的代码
@link 类似于@link标签,用于连接许多其它页面
@member 定义随后的函数为提供的类名称的一个成员
@param 用大括号中的参数类型描述一个参数
@private 表示函数/类为私有,不应包含在生成的文档中
@requires 表示需要另一个函数/类
@return 描述一个函数的返回值
@see 连接到另一个函数/类
@throws 描述函数/类可能产生的错误
@type 指定函数/成员的返回类型
@version 函数/类的版本号

开发及测试工具约定:

  • 编码格式化,三码统一。
  • 测试工具: 前期开发仅测试FireFox & IE6 & IE7 & IE8 & IE9 & Opera & Chrome & Safari
接上上一篇 HTML和CSS的书写规范,为大家分享了JavaScript图片,注释等的书写规范,在此感谢大家,持续更新中。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容