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

省略形はありません。

また、?: 演算子は省略形ではないことも指摘しておきます。一方は表現、もう一方はステートメントです。

とにかくこのコードをより簡潔にしたい場合は、中括弧を取り除くことをお勧めします:

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 に答える
0

改行を使用する場合、三項は問題ありません。

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

誰もが構文上の好みを持っていますが、それは完全に読みやすいと思います。

于 2014-09-10T20:51:46.397 に答える
-1

これには 3 進数を使用できますが、使用しないことをお勧めします (スタイルが悪いため)。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 に答える