bao*_*luu 18 javascript conditional operators conditional-operator
是否可以像这样的语句使用条件运算符?
(x == y) ? alert("yo!") : alert("meh!");
Run Code Online (Sandbox Code Playgroud)
或者使用它来分配这样的值是否更正确?
z = (x == y) ? "yo!" : "meh!";
Run Code Online (Sandbox Code Playgroud)
如果像声明一样使用它是不正确的,那么可以添加多行代码来执行吗?为多行代码使用ifthen和switch语句更正确吗?
(x == y) ? (alert("yo!"), document.write("woot!")) : (alert("meh!"), document.write("blah!"));
Run Code Online (Sandbox Code Playgroud)
Jam*_*mes 25
条件运算符是有意简洁的,对于赋值特别有用:
var a = x ? 1 : 2;
Run Code Online (Sandbox Code Playgroud)
尽管可能,但为了便于阅读,使用它们来有条件地运行函数应该使用IF/ELSE语句来完成:
// This is possible but IMO not best practice:
X ? doSomething() : doSomethingElse();
Run Code Online (Sandbox Code Playgroud)
虽然啰嗦,但大多数时候,这是更好的解决方案:
if (X) {
doSomething();
} else {
doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)
IF/ELSE结构的一个显着优点是,您可以在每种条件下添加额外的任务,而且麻烦最小.
您的最后一个片段也是可能的,但它看起来有些冗长,并且再次可能更适合更传统的逻辑结构; 像IF/ELSE块一样.
也就是说,条件运算符仍然可以是可读的,例如
(something && somethingElse > 2) ?
doSomeLongFunctionName()
: doSomeOtherLongFunctionName();
Run Code Online (Sandbox Code Playgroud)
最后,就像许多事情一样,这取决于个人偏好.永远记住你写的代码不只是为了你; 其他开发者可能不得不在将来涉及它; 尽量让它尽可能可读.
| 归档时间: |
|
| 查看次数: |
21685 次 |
| 最近记录: |