isNull: function(a){
return a =無效的;
},
is確定:函數(a){
return a === undefined;
},
isNumber: function(a){
return typeof a === 'number';
},
isString: function(a){
return typeof a === 'string';
},
isBoolean: function(a){
return typeof a === 'boolean';
},
isPrimitive: function(b){
var a = typeof b;
return !!(b === undefined || b === null || a == 'boolean' || a == 'number' || a == 'string');
},
isArray: function(a){
return proto_obj.toString.call(a) === '[object Array]';
},
isFunction: function(a){
return proto_obj.toString.call(a) === '[object Function]';
},
isPlainObject: function(o){
if (!o || o === win || o === doc || o === doc.body) {
返回;
}
return 'isPrototypeOf' in o && proto_obj.toString.call(o) === '[object false Object]';
},
isWindow: function(o){
return o && typeof o === 'object' && 'setInterval' in o;
},
isEmptyObject: function(o){
for(var a in o) {
return false;
}
傳回true;
}
以上是XX系列中,isUndefined在類別庫中用的最多。擁有某個屬性等等。很明顯多一層函數呼叫比直接使用短暫的執行效率會低(雖然有些微不足道),但如果是未定義調用次數很多如上萬次還是很明顯的。次數有4000次,從效能分析工具看佔用了近1%的時間。座標時間。 /isString函數內只有一個,抽象層次很低。綜上,我去掉了類別庫中對基本類型判斷的isNull/isUndefine/isBoolean/isNumber/isString,需要利用這些判斷的時候直接使用typeof等。