javascript提出了一些独一无二的性能挑战,这与你组织代码的方式有关。随着WEB应用变得越来越高级,包含的javascript代码也越来越多,各种模式和反模式也逐渐出现,为了编写更高效的代码,请牢记以下编程实践:
1.通过避免使用eval()和Function()构造器来避免双重求值带来的性能消耗。同样的,给setTimeout()和setInterval()传递函数而不是字符串作为参数;
2.尽量使用直接量创建对象和数组。直接量的创建和初始化都比非直接量形式要快;
3.避免做重复的工作,当需要检测浏览器时,可使用延迟加载 或 条件预加载;
4.在进行数学计算式,考虑直接操作数字的二进制形式的位运算;
5.javascript的原生方法总会比你写的任何代码都要快,尽量使用原生方法;
延迟加载:
function addHandler(target,eventType,handle){
if(terget.addEventListener){
addHandler = function(target,eventType,handle){
target.attachEventListener(eventType,handle,false);
}
}else{ // IE
addHandler = function(target,eventType,handle){
target.attachEvent("on"+eventType,handle);
}
}
addHandle(target,eventType,handle);
}
条件预加载:
var addHandle = document.body.addEventListener? function(target,eventType,handle){
target.addEventListener(eventType,handle,false);
}:function(){
target.attachEvent("on"+eventType,handle);
}
三目运算符加以判断;