>웹 프론트엔드 >JS 튜토리얼 >JavaScript_javascript 기술의 isXX 시리즈에 작별을 고하세요

JavaScript_javascript 기술의 isXX 시리즈에 작별을 고하세요

WBOY
WBOY원래의
2016-05-16 17:51:261119검색
复제대码 代码如下:

isNull: function(a){
return a === 널;
},
isUndefine: function(a){
return a === 정의되지 않음;
},
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 === 정의되지 않음 || b === null || a == '부울' || a == '숫자' || a == '문자열');
},
isArray: function(a){
return proto_obj.toString.call(a) === '[object Array]';
},
isFunction: function(a){
return proto_obj.toString.call(a) === '[객체 함수]';
},
isPlainObject: function(o){
if (!o || o === win || o === doc || o === doc.body) {
거짓을 반환;
}
o && proto_obj.toString.call(o) === '[object Object]'에서 'isPrototypeOf'를 반환합니다.
},
isWindow: function(o){
return o && typeof o === 'object' && 'setInterval' in o;
},
isEmptyObject: function(o){
for(var a in o) {
return false;
}
true를 반환합니다.
}

以上isXX系列中,isUndefineed in 类库中用的最多.个属性等等。但这个函数是不必存在,我已将其移除。理由如下

1,isUndefine 与 使用全等(===)或typeof多了一层函数调用。很明显多一层函数调用比直接使용 원시적인 运算符效率会低(虽然有些微不足道),但如果isUndefine调用次数很多如上万次还是很很明显的.我曾经在邮箱框架中加入了该函数,调用次数有4000多次,从性能分析工具看1%의 사용률은 1%의 사용률에 비해 1%의 사용률은 1%에 불과합니다.其也会 Tweet. 如果这一条还不足以让你放弃isUndefined,请看下面。
2,函数从一定程島上是对一些代码的封装,抽象。于降低代码的复杂性。但isNull/isUndefine/isBoolean/isNumber/isString函数内仅有一句,抽象层次很低。因此完低不必封装而提取出一个函数。
3,isUndefine(a) 与 a === unphase比并不会节省几个字节(呵,你可以命名的更短但损失了可读性)。 isNumber/isString,需要用到这些判断 时候直接使는 运算符等의 유형입니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.