JavaScript条件快捷方式。如果有更多的话

时间:2011-10-24 08:09:06

标签: javascript

我们可以使用条件快捷方式使用多个if语句。

var x = this.checked ? y : z;

6 个答案:

答案 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"