js代码优化

当自调用函数须要使用外部变量时,应该做为参数传递给函数,这样函数在访问外部变量时不用进行做用域链查找了
(function(window,jQuery){
  //................
})(window,jQuery);

使用单个var,在代码块开头声明变量,防止逻辑混乱、减小代码量
var a = 1,b = 2,j;


不须要每次循环都去取数组属性,这会下降性能
for (var i = 0, max = myarray.length; i < max; i++) {}

 
防止变量、参数为空
function( obj || {} ){obj.a=1;}
var obj = obj || {};



强制new模式,防止构造函数直接调用
function Person(name, city) {
if(!(this instanceof Person)) {
return new Person(name, city);
}
}

 
深拷贝对象:
var deepCopy= function(source) {
var result={};
for (var key in source) {
result[key] = typeof source[key]===’object’? deepCopy(source[key]): source[key];
}
return result;
}

 
深拷贝数组:
方法1:
var a = [1];
var b = a.slice(1);


事件click 和 tap 比较:
二者都会在点击时触发,可是在手机WEB端,click会有 200~300 ms,因此请用tap代替click做为点击事件。
相关文章
相关标签/搜索