皆さんこんばんはヤスです。
本日、やりたいこといっぱいあったのに今回の項目で一日使い果たしてしまった阿呆です(笑)
では、何に1日使い果たしたのか見ていきましょう!!
まずは、このプログラムを見てください。
var Seito = function(namae, tensuu) {
this.namae = namae || “???”;
this.tensuu = tensuu || 0;
this.show = function() {
window.alert(“名前 : ” + this.namae + ” / 点数 : ” + this.tensuu);
};
};
var sYuu = new Seito(“遊”, 3);
alert(sYuu.namae + ” ” + sYuu.tensuu);
sYuu.show();
まず、これは漫画で分かるJavaScript講座の第12話( https://crocro.com/write/manga_javascript/wiki.cgi?p=type_object_class )
のあるコードなのですが…
this.namae = namae || “???”;
this.tensuu = tensuu || 0;
この部分の”||”の意味わかりますか?私はここで1日無駄にしました(´;ω;`)
論理演算子です。いわゆる「OR」ですね。どちらか一方満たせば”真”となる…
私は、IF文で多くこれを見ていたので、急にこれを見たら?????が押し寄せました。
調べていくと、条件分岐の省略という記事にたどり着きました。
https://qiita.com/Imamotty/items/bc659569239379dded55
ここで、はっとなるわけですね…
論理演算子 &&
||
は何らかのルールに沿って演算子の両側の値のうちの一方を返す演算子であるということになります。
さらに…
【expr1 && expr2】 ・expr1 を false と見ることができる場合は、expr1 を返します。 ・そうでない場合は、expr2 を返します。 ・したがって、真偽値と共に使われた場合、 演算対象の両方が true ならば、&& は、true を返し、 そうでなければ、false を返します。
【expr1 || expr2】 ・expr1 を true と見ることができる場合は、expr1 を返します。 ・そうでない場合は、expr2 を返します。 ・したがって、真偽値と共に使われた場合、 演算対象のどちらかが true ならば、|| は、true を返し、 両方とも false の場合は、false を返します。
と書かれており、
IF文を使わなくても、||で表せればよかったんだと…
まとめると
this.namae = namae || “???”; の意味は、
・namaeを true と見ることができる場合は、namae を返します。 ・そうでない場合は、'???' を返します。
単純です…
以上です。
もりけん塾
もりけん先生
追記もう一ついい記事ありました。
MDN web docsより
ショートサーキット評価
論理演算子は左から右へ評価されるため、論理演算子で左辺を評価した時点で論理式の結果が確定した場合には右辺の評価を行わないことを、ショートサーキット評価といいます。例えば、A && Bという論理式があった場合、Aがfalseなら、その時点で式全体の結果はfalseで確定するため、Bがどうであるかについてはチェックしません。:
false && (anything)
をショートサーキット評価すると、false になります。true || (anything)
をショートサーキット評価すると、true になります。
上記の式の anything の部分は評価されません。また、上記の式の anything の部分は (括弧で示しているとおり) ひとつの論理式ですので注意してください。
コメント