3

if / else if / else 语句有简写吗?例如,我知道有一个 if / else 语句:

var n = $("#example div").length;
$("body").css("background", (n < 2) ? "green" : "orange");

但是我如何用上面的简写语法编写以下内容?

var n = $("#example div").length;

if (n < 2) {
    $("body").css("background", "green");
}
else if (n > 2) {
    $("body").css("background", "blue");
}
else {
    $("body").css("background", "orange");
}
4

4 回答 4

1

它存在,但联合国强烈推荐它,因为它很难阅读和维护。

var n = $("#example div").length,
    color;

color = (n < 2) ? 'green' : 
        (n > 2) ? 'blue'  : 'orange';

$("body").css("background", color);
于 2014-09-10T20:51:29.653 回答
0

如果您使用换行符,三元组很好:

$( 'body' ).css( 'background',
      (n < 2) ? 'green'
    : (n > 2) ? 'blue'
    :           'orange'
);

每个人都有自己的语法偏好,但我认为这是完全可读的。

于 2014-09-10T20:51:46.397 回答
0

没有速记。

我还想指出 ?: 运算符不是简写。一个是表达,另一个是陈述。

如果你想让这段代码更简洁,我建议去掉大括号:

if (n < 2)      $("body").css("background", "green");
else if (n > 2) $("body").css("background", "blue");
else            $("body").css("background", "orange");
于 2014-09-10T20:55:27.147 回答
-1

可以为此使用三元组,但我建议不要这样做(这是不好的风格)。您还可以使用 switch 语句:

switch(true) {
    case (n<2):
        $("body").css("background", "green");
        break;
    case (n>2):
        $("body").css("background", "blue");
        break;
    default:
       $("body").css("background", "orange");
}

但这并没有比坚持下去更好if

于 2014-09-10T20:48:23.303 回答