什么时候应该使用Javascript条件运算符?

时间:2015-04-01 16:37:12

标签: javascript

Righto,所以我在很多代码中遇到过这个,我已经阅读过,并且我理解条件运算符在Javascript中的功能作用;我不明白的是当一个应该使用它时。

我已经阅读了ECMAScript Specification 5.1,但是在决定何时提出这个问题时,这对我没什么帮助。

例如,我可以很容易地看到替换代码的好处:

if (isTrue == true) {
  doSomething();
}
else {
  doSomethingElse();
}

下一个:

isTrue ? doSomething() : doSomethingElse()

我倒下的地方是if ... else ...语句中的代码很长或者条件运算符嵌套在(a)其他条件运算符中。决定何时使用哪个版本的条件语句的明显候选者是“用条件运算符替换它会使代码更容易遵循吗?”。不幸的是,我对编写代码缺乏经验,我不确定这是什么时候,并且我很好地理解我自己的代码,无论它写得多么糟糕。

任何拥有比我更多经验的人都可以给我一个稍微不那么主观的测试,以确定何时使用它,以便我可以尝试效仿吗?

相关:JS How to use the ?: (ternary) operator

2 个答案:

答案 0 :(得分:3)

我认为它对于代码易读性和归因简单性很有用。哪一个更容易阅读? :)

var numberType = (number % 2 == 0) ? "even" : "odd";

// or

var numberType;
if (number % 2 == 0) {
    numberType = "even";
} else {
    numberType = "odd";
}

答案 1 :(得分:2)

三元运营商旨在取代

if (test) {
 i = something();
} else {
 i = somethingElse();
}

i = test?something():somethingElse();

您不能将其视为if-then-else快捷方式,而是作为条件表达式(非条件指令)。