當自調用函數須要使用外部變量時,應該做爲參數傳遞給函數,這樣函數在訪問外部變量時不用進行做用域鏈查找了
(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做爲點擊事件。