在性能特定的情况下,if-else是否比try-catch更好?最佳做法是哪种?

时间:2019-04-05 14:16:00

标签: javascript performance typescript if-statement try-catch

我有一个json,我需要检查一些值并执行某些任务,说这是我的json,

s = {
    "d": {
      "f": {
        "g": 1
      }
    }
  }

和键d,f和g可能存在或可能不存在,并且如果g == 1,则我需要执行某些任务。因此,以下哪项可以给我带来更好的性能。

if-else其他方式

if(s.d && s.d.f && s.d.f.g && s.d.f.g ==1)
{
    doSomeJob();
}
else
{
    doSomeOtherJob();
}

尝试捕获的方式

try{
if(s.d.f.g ==1)
{
    doSomeJob();
}
}catch(e){
    doSomeOtherJob();
}

1 个答案:

答案 0 :(得分:1)

带有try-catch的东西。是它总是尝试遍历try内的代码,如果不起作用,则必须将try内的所有内容重新滚动回到try的开头。
只有重新滚动后,它才会输入catch。这使得使用try-catch的速度要慢得多。
如果开始时存在条件(例如if-else语句)。而且该语句为假,则不必遍历if或其余所有if语句。

这就是使用if-else语句更有用的地方,以及为什么您希望try-catch尽可能短。