【发布时间】:2019-04-05 14:15:59
【问题描述】:
我有一个 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-catch 方法
try{
if(s.d.f.g ==1)
{
doSomeJob();
}
}catch(e){
doSomeOtherJob();
}
【问题讨论】:
-
try-catch几乎永远不会比简单的测试表现得更好。一些优化运行时甚至不会尝试使用异常处理程序优化函数。但是在大多数情况下,它不会对您的程序的工作方式产生重大影响。 -
我也理解 try/catch 块比 if/else 语句更昂贵
-
在jsperf.com上比较它们
标签: javascript performance typescript if-statement try-catch