Righto,所以我在很多代码中遇到过这个,我已经阅读过,并且我理解条件运算符在Javascript中的功能作用;我不明白的是当一个应该使用它时。
我已经阅读了ECMAScript Specification 5.1,但是在决定何时提出这个问题时,这对我没什么帮助。
例如,我可以很容易地看到替换代码的好处:
if (isTrue == true) {
doSomething();
}
else {
doSomethingElse();
}
下一个:
isTrue ? doSomething() : doSomethingElse()
我倒下的地方是if ... else ...语句中的代码很长或者条件运算符嵌套在(a)其他条件运算符中。决定何时使用哪个版本的条件语句的明显候选者是“用条件运算符替换它会使代码更容易遵循吗?”。不幸的是,我对编写代码缺乏经验,我不确定这是什么时候,并且我很好地理解我自己的代码,无论它写得多么糟糕。
任何拥有比我更多经验的人都可以给我一个稍微不那么主观的测试,以确定你何时使用它,以便我可以尝试效仿吗?
答案 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快捷方式,而是作为条件表达式(非条件指令)。