//这段糟糕的代码会在每次进入循环的时候都计算一次数组的长度 var names = ['George','Ringo','Paul','John']; for(var i=0;idoSomeThingWith(names[i]); }
代码如下:
//这样的话,就只会计算一次了 var names = ['George','Ringo','Paul','John']; var all = names.length; for(var i=0;idoSomeThingWith(names[i]); }
代码如下:
//这样就更加简短了 var names = ['George','Ringo','Paul','John']; for(var i=0,j=names.length;idoSomeThingWith(names[i]); }
代码如下:
//这段代码的糟糕之处在于,它把变量声明放在循环体内了,每次循环都会创建变量 for(var i = 0; i < someArray.length; i++) { var container = document.getElementById('container'); container.innerHtml += 'my number: ' + i; console.log(i); }
代码如下:
//在循环体外声明变量,变量只会创建一次 var container = document.getElementById('container'); for(var i = 0, len = someArray.length; i < len; i++) { container.innerHtml += 'my number: ' + i; console.log(i); }
用尽量简短的代码
如果可以增加可读性的话,那么使用代码的简短格式是有意义的,下面是一份不完全的列表:
代码如下:
//对于条件判断只有两次的,这是一种冗长的写法 var direction; if(x > 100){ direction = 1; } else { direction = -1; }
代码如下:
//更好的代码 var direction = (x > 100) ? 1 : -1;
代码如下:
//判断一个 变量是否定义,如果否,就赋予一个值,糟糕的代码 if(v){ var x = v; } else { var x = 10; }
代码如下:
//更好的代码 var x = v || 10;
代码如下:
//重复了变量名很多次 var cow = new Object(); cow.colour = 'brown'; cow.commonQuestion = 'What now?'; cow.moo = function(){ console.log('moo'); } cow.feet = 4; cow.accordingToLarson = 'will take over the world';
代码如下:
//更好的写法是这样 var cow = { colour:'brown', commonQuestion:'What now?', moo:function(){ console.log('moo); }, feet:4, accordingToLarson:'will take over the world' };
代码如下:
//重复了很多次数组名 var aweSomeBands = new Array(); aweSomeBands[0] = 'Bad Religion'; aweSomeBands[1] = 'Dropkick Murphys'; aweSomeBands[2] = 'Flogging Molly'; aweSomeBands[3] = 'Red Hot Chili Peppers'; aweSomeBands[4] = 'Pornophonique';
代码如下:
//更好的代码 var aweSomeBands = [ 'Bad Religion', 'Dropkick Murphys', 'Flogging Molly', 'Red Hot Chili Peppers', 'Pornophonique' ];