【JavaScript】論理演算子のLL的利用法
【JavaScript】演算子②でも論理演算子やってるんだけれど
先生からさらに説明があったのでまとめる
JavaScriptっていうかプログラミング全般だと思うけれど
一旦JavaScriptカテゴリで
なにそれ今更じゃね?って感じの方がほとんどだと思うけど
はじめて知ったんだ恥ずかしい‥
論理積演算子&&、論理和演算子||をLL的に利用する
【JavaScript】演算子②では&&と||って‥
複数の条件式または論理値を 論理的に結合し、その結果を真偽で返す
- &&(AND)
- 左右の式がともにtrueの場合はtrue
- 例>>100 == 100 && 1000 == 1000 //true
- ||(OR)
- 左右の式のどちらかがtrueの場合はtrue
- 例>>100 == 100 || 1000 == 500 //true
- !(NOT)
- 式がfalseの場合はtrue
- 例>>!(1000 == 500) //true
てな感じだったわけで
結合したものが真偽かってところに関しては
すごく利用したことがあったわけです私は
まあこんなの
var x = 1; var y = 2; console.log(x == 1 && y == 1); //false console.log(x == 1 || y == 1); //true
それに対して今回作業中に出てきたのが
var a = 0; var b = 1; var c = 2; x = a && b; y = b && c; x;// 0 y;// 2
こんな感じのでした
なにそれどういうこと?ってなりました
で、先生の登場
今回説明していただいたのは
&&と||は最終的に真偽を判別した値を代入する
という特徴がある!!ということ
この例xの場合
この例yの場合
- b && cの左式であるbは1、要はtrueになる
- 論理積演算子なので右式も評価される
- 右式cは2、trueなので最終的にこのb && cはtrue
- trueだと判別したのが右式だから右式の値である2がyに代入される
なるほどー
論理和演算子も同じく‥
var a = 0; var b = 1; var c = 2; x = a || b; y = b || c; x; //1 y; //1
この例xの場合
- a || bの左式であるaは0、要はfalseになる
- 論理和演算子なので右式も評価される
- 右式bは1、tureなので最終的にこのa || bはture
- tureだと判別したのが右式だから右式の値である1がxに代入される