Javascript if else语句优化

时间:2012-01-05 08:07:33

标签: javascript

我想问一下JavaScript if else语句中的优化问题。我有这样的代码

if ( thisIsTrue )
    printMe("someMessage");

代码可以像这样进行优化

thisIsTrue && printMe("someMessage");

问题是thisIsTrue && printMe("someMessage");的代码仅适用于已返回true的语句。

如果回报错误怎么办?

5 个答案:

答案 0 :(得分:13)

您应该避免将代码转换为其他人或未来的谜题。将条件与输出混合,无法获得任何好处。它不会“优化”任何东西,并且在您尝试调试时将会花费您很多时间。

我认为你应该站在更加冗长的一边而不是更少。

答案 1 :(得分:4)

thisIsTrue ? printMe("is true") : printMe("is false");

答案 2 :(得分:2)

虽然这不是优化,也没有建议,但我会解释细节。

A && B1st等操作数的组合中,operand A将被执行,如果return true second operand将被执行,否则将会执行1st operand已终止,因为如果trueresult second operand将取决于1st,如果falseresult false将{}肯定是true && alert("someMessage"); will show alert 而不管第二个操作数,所以它不会执行第二个操作数。所以

!false && alert("someMessage....."); will also show

condition ? alert("someMessage") : alert("someMessage.....");

组合上面两个,你可以写为

{{1}}

小提琴:http://jsfiddle.net/9q2jC/1/

答案 3 :(得分:1)

这不是优化(就性能而言)。

另外,这两种形式并不相同。

后者是一种表达,而前者是一种陈述。

答案 4 :(得分:1)

  

如果您有一系列If-Then-Else语句,您应该尽可能地从最不可能的语句中组织它们。通过这种方式,程序不必遍历所有不可能的条件来获取可能的条件,这些条件将被更频繁地调用。

     

一大堆简单条件语句可能会遗漏的常用策略是用Switch语句替换If-Then-Else。这是一个很难获得资格的人。性能差异很大,尽管你几乎总是会有一些改进,即使它很小。与往常一样,正确的代码设计更为重要。看到有好的test cases带开关和if elseif else