Javascript 从技术上讲,什么更有效地匹配预期字符串?
什么更好?如果:Javascript 从技术上讲,什么更有效地匹配预期字符串?,javascript,Javascript,什么更好?如果: function a(){}; 那么处理这件事快吗 if(typeof a == "function"){func(arg);} 还是这个 if(!(typeof a).search("f")){func(arg);} 我之所以问这个问题,是因为在我看来,匹配字符串的第一个符号比匹配整个字符串更容易,不是吗?有兴趣确认一下。你说得不对类型a==“函数”更快 这里是一个jsPerf测试 您的第一个代码块:527021419每秒操作数 您的第二个代码块:9803840每秒操
function a(){};
那么处理这件事快吗
if(typeof a == "function"){func(arg);}
还是这个
if(!(typeof a).search("f")){func(arg);}
我之所以问这个问题,是因为在我看来,匹配字符串的第一个符号比匹配整个字符串更容易,不是吗?有兴趣确认一下。你说得不对<代码>类型a==“函数”更快 这里是一个jsPerf测试
- 您的第一个代码块:
每秒操作数527021419
- 您的第二个代码块:
每秒操作数9803840
var a = function(){};
if( ( typeof a )[ 0 ] == 'f' ){a()};
但下面的代码比上面的代码快20倍左右:
var a = function(){};
if( a.constructor == Function ){ a() };
奇怪的是,在Chrome 19上,我得到了相反的结果,即,
==“function”
更快。你确定吗?!(a的类型)。搜索(“f”)
对我来说慢了11倍。无论如何,感谢链接到jsperf