什么在技术上更有效来匹配预期的字符串

What is technically more efficient to match expected strings?

本文关键字:字符串 在技术上 有效 什么      更新时间:2023-09-26

什么更好?如果:

function a(){};

那么处理这个会更快吗

if(typeof a == "function"){func(arg);}

还是这个?

if(!(typeof a).search("f")){func(arg);}

我只是问这个,因为在我看来,匹配字符串的第一个符号比匹配整个字符串更容易,不是吗?有兴趣确定。

这是一个 jsPerf 测试 http://jsperf.com/typeof-test12。

  • 您的第一个代码块:每秒 527,021,419 次操作。
  • 第二个代码块:每秒9,803,840操作。

这是一个巨大的利润(第一个比我电脑上的第二个快 54 倍)。

快一点(可能你想到了:

var a = function(){};
if( ( typeof a )[ 0 ] == 'f' ){a()};

但是下面的代码比上面的代码快大约 20 倍(铬):

var a = function(){};
if(  a.constructor == Function ){ a() };

你说得不对。 typeof a == "function"更快。

http://jsperf.com/is-function-test