- 编写可维护的代码
- 尽量减少全局变量
没有声明或没有对链式赋值的所有变量进行声明时也生成全局变量
隐含全局变量可以通过delete删除,明确定义的全局变量则不可以。隐含全局变量是全局对象的属性。
- 不要增加内置对象的原型。
- 优化 for 循环
//一般情况
for( var i = 0;i < arr.length ; i++ ) {
//处理 arr[i]
}
//但是每次访问任何容器的长度时,都是在查询活动的 DOM ,应该减少这种 DOM 操作
//优化之后
var length = arr.length ;
for( var i = 0;i < length ; i++ ) {
//处理 arr[i]
}
//最优
var i,arr = [];
for ( i = arr.length ; i-- ) { //使用最少的变量;逐步减至0,因为与0比较比与数组长度比较更有效率
//处理 arr[i]
}
//或使用 while 循环
var arr = [];
i = arr.length;
while ( i-- ) {
//处理 arr[i]
}
- for-in
for ( var i in man ) {
if ( man.hasOwnProperty(i)) {
console.log(i);
}
}
- 不要使用setInterval( ),setTimeout( )等构造函数来传递参数。
- 不要使用 eval( ), 可以使用 new Function ( ) 来替代或将 eval( ) 封装在一个即时函数中
//eval( )会影响到作用域链,可以访问和修改它外部作用域的变量 - 字符串转化为数字的方法:
parseInt("08",10) //注意一定要给第二个参数赋值
+"08" // 8
Number("08"); //8
- 命名约定
构造函数的首字母大写
变量名和函数名采用驼峰命名法
大写的变量名约定该变量在程序生命周期中不可改变
JSLint 会对下划线前缀给出警告
网友评论