为了账号安全,请及时绑定邮箱和手机立即绑定

If 语句性能

If 语句性能

jeck猫 2021-11-12 14:59:20
鉴于以下代码片段:if (condition1 && condition2) {  // ACTION 1} else if (!condition1) {  // ACTION 2} else {  // ACTION 3}如果我以这种方式对其进行重组,它是否会对性能产生影响:if (condition1) {  if (condtion2) {    // ACTION 1  } else {    // ACTION 3  }} else {  // ACTION 2}
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

在第一种情况下,如果condition1false,那么将会有一个短路操作,这基本上意味着您不需要检查condition2并完全跳过该块。

而在第二种情况下,如果condition1是,您可以跳过两个块false

就性能而言,它不会有显着差异,因为它们只是比较。因此,您应该使用在您的特定上下文中更具可读性和直观性的任何形式。


查看完整回答
反对 回复 2021-11-12
?
临摹微笑

TA贡献1982条经验 获得超2个赞

通常第一个比 if..else 嵌套块更清晰,并且是首选。

此外,由于condition1 && condition短路操作导致性能不同。因此,如果第一个条件为假,则不会继续检查第二个条件。


查看完整回答
反对 回复 2021-11-12
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

不,除非condition1包含某种繁重的方法调用,否则会重复。如果是这样,最好先调用它,然后比较结果以使其更易于阅读。


let condition1Result = condition1();

if (condition1Result && condition2) {

  // ACTION 1

} else if (!condition1Result) {

  // ACTION 2

} else {

  // ACTION 3

}

在几乎所有场景中,仅比较两个值对性能的影响都可以忽略不计,因此关注微优化代码的可读性始终是一个好主意。


查看完整回答
反对 回复 2021-11-12
  • 3 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信