http://www.javaeye.com/topic/266962
[color=Red]关于JavaScript的代码优化:
Web浏览器下载的是JavaScript的所有源码,因此所有长变量名和注释都回包含在内。如果文件过大,显然会导致下载时间增加间。
1160是一个TCP-IP包中的字节数。最好能将每个javascript文件都保持在1160字节以下,以获得最优的下载时间。
由于这个原因,我们必须要删除注释、删除制表符和空格、删除所有的换行、将长变量名缩短。
遵循这4条比较困难。因此我们需要用外部程序(ECMAScript Cruncher)来帮助我们。
下面我们看编写JavaScript程序时,减少字节数的方法:
[color=Blue]1,true和false.
因为在javascript语言中 true等于1,false等于0。因此,脚本包含的字面变量true都可以用1来替换,而false可以用0来替换。
例如:
[code]var bFound = false;
for(var i=0;i< aTest.length&&!bFound;i++){
if(aTest[i]==vTest){
bFounde = true;
}
} [/code]
以上代码可以改写成:
[code]var bFound = 0;
for(var i=0;i< aTest.length&&!bFound;i++){
if(aTest[i]==vTest){
bFounde = 1;
}
} [/code]
这两段代码运行方式完全相同,而后者节省了7个字节。(以前在某篇文章上看过一句话,说做一个小气的程序员。果然体现的是淋漓尽致啊。)
[color=Blue]2,缩短否定检测 ..
代码中常常会出现检测某个值是否满足条件。而大部分作的判断某个变量是否为undefined 、null 、false。可以用逻辑非来简化判断。
例如:
[code]if(oTest != undefined){
//do someting
}
if(oTest != null){
//do someting
}
if(oTest != false){
//do someting
} [/code]
那么,你可以直接替换成:
[code]if(!oTest){
//do something
} [/code]
为什么可以替换呢?因为逻辑非操作在遇到undefined 、null 、false时返回true这样做可以节省很多字节。
[color=Blue]3.定义数组、对象时候的技巧
[code]var oTest = new Array;
var oTest = []; [/code]
是等价的。
[code]
var oTest = new Object;
var oTest = {}; [/code]
是等价的。