像这样的语句可以使用条件运算符吗?
(x == y) ? alert("yo!") : alert("meh!");
或者使用它来分配这样的值更正确吗?
z = (x == y) ? "yo!" : "meh!";
如果像语句一样使用它并没有错误,那么是否可以像这样添加多行代码来执行?对于多行代码使用 ifthen 和 switch 语句是否更正确?
(x == y) ? (alert("yo!"), document.write("woot!")) : (alert("meh!"), document.write("blah!"));
条件运算符有意简洁,对于赋值特别有用:
var a = x ? 1 : 2;
使用它们有条件地运行函数,虽然可能,但为了可读性,应该使用 IF/ELSE 语句来完成:
// This is possible but IMO not best practice:
X ? doSomething() : doSomethingElse();
虽然啰嗦,但大多数时候,这是更好的解决方案:
if (X) {
doSomething();
} else {
doSomethingElse();
}
IF/ELSE 结构的一个显着好处是您可以在每种条件下轻松添加额外的任务。
您的最后一个片段也是可能的,但它看起来有点冗长,而且可能更适合更传统的逻辑结构;就像 IF/ELSE 块一样。
也就是说,条件运算符仍然是可读的,例如
(something && somethingElse > 2) ?
doSomeLongFunctionName()
: doSomeOtherLongFunctionName();
最后,像许多事情一样,这取决于个人喜好。永远记住,您正在编写的代码不仅仅适合您;也适合您。其他开发者将来可能不得不费力地经历它;尝试使其尽可能具有可读性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)