JavaScript中的isXX系列是否继续使用的分析
分类:计算机网络

综上,作者去掉了类库中对骨干类型决断的isNull/isUndefined/isBoolean/isNumber/isString,须求用到那几个判别的时候一向使用typeof运算符等。

1,isUndefined 与 使用全等(===)或typeof 多了一层函数调用。很显眼多一层函数调用比一直动用原生的演算符效能会低(就算某个卑不足道),但借使isUndefined调用次数过多如上万次照旧很明确的。作者早已在邮箱框架中进入了该函数,调用次数有四千数次,从品质深入分析工具看占用了近1%的岁月。仅仅多个判别占1%的调用时间依旧很吓人的。当然,邮箱框架内的isUndefined处在多层闭包的顶层,访谈其也会占有很多日子。假使这一条还不足以让您放弃isUndefined,请看下边。
2,函数从一定水平上是对一部分代码的包装,抽象。是团伙优良代码的方法之一,且有助于减弱代码的复杂。但isNull/isUndefined/isBoolean/isNumber/isString函数内唯有一句,抽象档期的顺序相当低。由此完全不用封装而领收取三个函数。
3,isUndefined(a) 与 a === undefined相比较并不会省掉多少个字节(呵,你能够命名的越来越短但损失了可读性)。
综上,小编去掉了类库中对基本项目决断的isNull/isUndefined/isBoolean/isNumber/isString,需求用到那么些决断的时候平素选用typeof运算符等。

以上isXX体系中,isUndefined在类库中用的最多。如判定是或不是传入了有些参数,决断目标是还是不是持有有个别属性等等。但以此函数是无须存在,作者已将其移除。理由如下

isNull: function(a){
return a === null;
},
isUndefined: function(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 false;
}
return 'isPrototypeOf' in o && proto_obj.toString.call(o) === '[object Object]';
},
isWindow: function(o){
return o && typeof o === 'object' && 'setInterval' in o;
},
isEmptyObject: function(o){
for(var a in o) {
return false;
}
return true;
}

isNull: function(a){
return a === null;
},
isUndefined: function(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 false;
}
return 'isPrototypeOf' in o && proto_obj.toString.call(o) === '[object Object]';
},
isWindow: function(o){
return o && typeof o === 'object' && 'setInterval' in o;
},
isEmptyObject: function(o){
for(var a in o) {
return false;
}
return true;
}

复制代码 代码如下:

复制代码 代码如下:

复制代码 代码如下:

isNull: function(a){
return a === null;
},
isUndefined: function(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 false;
}
return 'isPrototypeOf' in o && proto_obj.toString.call(o) === '[object Object]';
},
isWindow: function(o){
return o && typeof o === 'object' && 'setInterval' in o;
},
isEmptyObject: function(o){
for(var a in o) {
return false;
}
return true;
}

上述isXX种类中,isUndefined在类库中用的最多。如判定是或不是传入了有个别参数,推断指标是还是不是具有有些属性等等。但以此函数是不必存在,小编已将其移除。理由如下
1,isUndefined 与 使用全等(===)或typeof 多了一层函数调用。很显眼多一层函数调用比直接行使原生的运算符功效会低(就算某个人微权轻),但如果isUndefined调用次数过多如上万次照旧很分明的。作者早已在邮箱框架中投入了该函数,调用次数有四千数次,从性质深入分析工具看占用了近1%的年月。仅仅一个肯定占1%的调用时间恐怕很可怕的。当然,邮箱框架内的isUndefined处在多层闭包的顶层,访谈其也会占领很多时间。如若这一条还不足以让您遗弃isUndefined,请看上面。
2,函数从一定水平上是对一部分代码的包装,抽象。是团协会优良代码的方法之一,且有助于减弱代码的复杂性。但isNull/isUndefined/isBoolean/isNumber/isString函数内唯有一句,抽象等级次序十分低。因而完全不用封装而提抽出一个函数。
3,isUndefined(a) 与 a === undefined比较并不会省去多少个字节(呵,你能够命名的越来越短但损失了可读性)。

如上isXX连串中,isUndefined在类库中用的最多。如判定是或不是传入了有些参数,剖断目的是不是享有有些属性等等。但那么些函数是无须存在,小编已将其移除。理由如下

1,isUndefined 与 使用全等(===)或typeof 多了一层函数调用。很显著多一层函数调用比平素运用原生的运算符作用会低(就算有一些微不足道),但只要isUndefined调用次数过多如上万次照旧很醒指标。小编曾在邮箱框架中投入了该函数,调用次数有6000数13次,从性质解析工具看占用了近1%的时间。仅仅五个肯定占1%的调用时间照旧很可怕的。当然,邮箱框架内的isUndefined处在多层闭包的顶层,访谈其也会占用很多时间。假如这一条还不足以令你遗弃isUndefined,请看下边。
2,函数从自然程度上是对有些代码的包裹,抽象。是团伙卓绝代码的点子之一,且便于收缩代码的复杂性。但isNull/isUndefined/isBoolean/isNumber/isString函数内独有一句,抽象档次比非常低。由此完全不必封装而领收取三个函数。
3,isUndefined(a) 与 a === undefined相比并不会省掉多少个字节(呵,你能够命名的更加短但损失了可读性)。
综上,小编去掉了类库中对主题类型判别的isNull/isUndefined/isBoolean/isNumber/isString,需求用到这几个决断的时候平昔利用typeof运算符等。

代码如下: isNull: function(a){ return a === null; }, isUndefined: function(a){ return a === undefined; }, isNumber: function(a){ return typeof a === 'number'; }, i...

本文由美高梅网址发布于计算机网络,转载请注明出处:JavaScript中的isXX系列是否继续使用的分析

上一篇:Javascript数组排序各种方法总结,JavaScript实现拼音 下一篇:文本框根据输入内容自适应高度的代码,让text
猜你喜欢
热门排行
精彩图文