如果/ else if / else,如何用速记形式写?

时间:2014-09-10 20:40:42

标签: javascript jquery if-statement shorthand shorthand-if

是否有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 个答案:

答案 0 :(得分:1)

它存在,但它是高度联合国推荐的,因为它很难阅读和维护。

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

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

$("body").css("background", color);

答案 1 :(得分:0)

如果你使用换行符,三元是好的:

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

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

答案 2 :(得分:0)

没有简写。

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

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

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

答案 3 :(得分:-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

更好