我们可以使用条件快捷方式使用多个if语句。
var x = this.checked ? y : z;
答案 0 :(得分:5)
您可以滥用comma operator,因为它会评估其两个操作数并返回第二个操作数:
var x = this.checked ? y : doSomething(), doSomethingElse(), z;
然而,这使得代码的可读性(和可维护性)低于相应的if
语句:
var x;
if (this.checked) {
x = y;
} else {
doSomething();
doSomethingElse();
x = z;
}
所以我建议你使用if
语句。
答案 1 :(得分:4)
不,三元运算符根据布尔表达式返回两个表达式中的一个。
你可以嵌套它们,如果你真的想要,但它令人困惑且难以阅读:
var x = a ? b ? c : d : e
答案 2 :(得分:2)
不是,但你可以有几个嵌套语句:
var x = this.checked ? y : (some_other_condition) ? z : z2;
答案 3 :(得分:1)
你的意思是else if
?
如果是这样,那么你可以像
一样var x = this.checked ? y : this.elseifcheck ? z : a;
答案 4 :(得分:1)
如果你的意思是:
var x = this.checked ? y : z : a;
答案是否定的。但是 可以 的制作如下:
var x = this.checked ? y : ( z > 1 ? z : a );
答案 5 :(得分:1)
很有可能。在编程中,它被称为嵌套。考虑这个例子。
hasMac = false;
hasLinux = false;
var x = hasMac ? "Mac User" : hasLinux ? "Linux user" : "User OS Unknown";
// x will be "User OS Unknown"
hasMac = false;
hasLinux = true;
var x = hasMac ? "Mac User" : hasLinux ? "Linux user" : "User OS Unknown";
// x will be "Linux user"
hasMac = true;
hasLinux = true; // or false, won't matter
var x = hasMac ? "Mac User" : hasLinux ? "Linux user" : "User OS Unknown";
// x will be "Mac user"