我想问一下JavaScript if else
语句中的优化问题。我有这样的代码
if ( thisIsTrue )
printMe("someMessage");
代码可以像这样进行优化
thisIsTrue && printMe("someMessage");
问题是thisIsTrue && printMe("someMessage");
的代码仅适用于已返回true的语句。
如果回报错误怎么办?
答案 0 :(得分:13)
您应该避免将代码转换为其他人或未来的谜题。将条件与输出混合,无法获得任何好处。它不会“优化”任何东西,并且在您尝试调试时将会花费您很多时间。
我认为你应该站在更加冗长的一边而不是更少。
答案 1 :(得分:4)
thisIsTrue ? printMe("is true") : printMe("is false");
答案 2 :(得分:2)
虽然这不是优化,也没有建议,但我会解释细节。
在A && B
,1st
等操作数的组合中,operand A
将被执行,如果return true
second operand
将被执行,否则将会执行1st operand
已终止,因为如果true
为result
second operand
将取决于1st
,如果false
为result
false
将{}肯定是true && alert("someMessage"); will show alert
而不管第二个操作数,所以它不会执行第二个操作数。所以
!false && alert("someMessage....."); will also show
和
condition ? alert("someMessage") : alert("someMessage.....");
组合上面两个,你可以写为
{{1}}
答案 3 :(得分:1)
这不是优化(就性能而言)。
另外,这两种形式并不相同。
后者是一种表达,而前者是一种陈述。
答案 4 :(得分:1)
如果您有一系列If-Then-Else语句,您应该尽可能地从最不可能的语句中组织它们。通过这种方式,程序不必遍历所有不可能的条件来获取可能的条件,这些条件将被更频繁地调用。
一大堆简单条件语句可能会遗漏的常用策略是用Switch语句替换If-Then-Else。这是一个很难获得资格的人。性能差异很大,尽管你几乎总是会有一些改进,即使它很小。与往常一样,正确的代码设计更为重要。看到有好的test cases带开关和if elseif else