什么更好?如果:
function a(){};
然后处理这个
更快if(typeof a == "function"){func(arg);}
还是这个?
if(!(typeof a).search("f")){func(arg);}
我只是问这个,因为在我看来,它更容易匹配字符串的第一个符号而不是整个字符串,不是吗?有兴趣确保。
答案 0 :(得分:2)
这是一个jsPerf测试http://jsperf.com/typeof-test12。
527,021,419
次操作。9,803,840
次操作。这是一个巨大的边距(第一个比我计算机上第二个 快54倍)。
答案 1 :(得分:1)
快一点(可能你记得它:
var a = function(){};
if( ( typeof a )[ 0 ] == 'f' ){a()};
但是下面的代码比上面的代码快20倍(chrome):
var a = function(){};
if( a.constructor == Function ){ a() };
答案 2 :(得分:-1)
你不对。 typeof a == "function"
更快。