圧縮されたJSを読んでいたら気になる記述があったので調べたところ、一行に圧縮されたif文だった。
if (x == y) { console.log("xはyと等しい"); } else { console.log("xはyと等しくない"); }
このif文は以下のように一行で書ける。
(x == y) ? console.log("xはyと等しい") : console.log("xはyと等しくない");
(条件) ? 正 : 誤
という記述になる。
if else の場合
if (x == y) { console.log("xはyと等しい"); } else if(x == z) { console.log("xはzと等しい"); } else if(x == yz) { console.log("xはyzと等しい"); } else { console.log("xはいずれとも等しくない") }
こちらも以下のように書ける。
(x == y) ? console.log("xはyと等しい") : (x == z) ? console.log("xはzと等しい") : (x == yz) ? console.log("xはyzと等しい") : console.log("xはいずれとも等しくない");
(条件) ? 正 : (条件) ? 正 : (条件) ? 正 : 誤
のような記述になる。
読み辛いので普通に書いてドヤるものではないと思います。 コード圧縮が求められる時にコンパイラを通して出力する書き方ですね。