三項演算子
三項演算子は、ある条件が成立するときと成立しないときで違う答えを代入する演算子です。
代入する変数 = 条件 ? (成立するときの値): (成立しないときの値);
という形で書きます。
書かれた条件が成立した場合はAという値を返し、成立していないときにはBという値を左に代入するという演算子になります。
例えば、 kotae = (seibetsu == 1) ? "女性です" : "男性です"; という式があった場合、
seibetsuという変数には、男性には0,女性には1という数値が入っていたという前提だと、
seibetsuが1かどうかを確認し、成立する場合は「女性です」を代入し、成立しない場合は「男性です」を代入するイメージです。
実際に書いてみましょう。
var seibetsu = prompt(“男性は0, 女性は1を入力してください”);;
var kotae = (a == 1) ? “女性です” : “男性です”;
document.write(kotae + "<br>");
これを起動しますと、まず男性か女性かを0か1で入力させるポップアップで、seibetsuに0か1が入ります。
seibetsuに1が入っている場合はkotaeに「女性です」が、それ以外の場合は「男性です」が入ります。そしてそのkotaeを表示させます。
さて、似たような例題を記してみましょう。practic2-3.htmlを新しく作成し、スクリプト部分に以下のスクリプトを追加して動作を確認しましょう
var a= parseInt( prompt("aを入力してください") );
var b= parseInt( prompt("bを入力してください") );
var c;
c = (a == b) ? "aとbは等しい" : "aとbは等しくない";
document.write(c + "<br>");
c = (a < b) ? "aはbより小さい" : "aはb以上";
document.write(c + "<br>");
c = (a > b) ? "aはbより大きい" : "aはb以下";
document.write(c + "<br>");
先ほどのようにaに17, bに4を代入した場合、以下のような表示になります。
NULL合体演算子
NULL合体演算子は、?? で表されます。
NULLは、「変数に何も入っていない」状態のことを表します。
例えば、var a; と宣言された場合、aには何も入っていませんのでNULLになります。
しかし、var a = 4; と宣言された場合は、aには4が入っているのでNULLではありません。
試しに先ほどの最後に
var e;
var f = e ?? “eは空です”;
document.write(f);
とスクリプトを書いた場合、
1行目でeを変数として定義しましたが、初期値を入れていませんので、eは何も入ってない、つまりNULLの状態です。
2行目で eがNULLかどうかを確認したら成立しますので、fには「eは空です」と入り、4行目でfを表示します。
NULL判定をしない限りは、あまり使わない演算子ですので、こんなものがあるという程度の理解でいいと思います。