のんびり猫プログラマの日常

プログラムのことを書くかもしれない?

 

【JavaScript】ちょっとこなれた書き方(演算子編)

f:id:catprogram:20140815165846j:plain
と言っても、そんなに大したことでは無いのです。
でもしばらくJavaScriptから離れていると忘れるのでメモ的に。


1  条件演算子

JavaScriptを習いたての人はこう書く。if文はこれが基本。

var age = 18; //ageに18を代入
var text;

if(age >= 18){ //もしageが18歳以上なら
  text = "大人"; //textに"大人"をセット
}else{
  text = "子供"; //textに"子供"をセット
} 

他の言語でも大概通用するif文の書き方です。

これをこなれた風に書くと・・・

var age = 18;
var text = (age >= 18) ? "大人" : "子供";

こんな感じで行数も少なくなりますね。


2  論理演算子

これは確実に忘れる(=混乱する)ので書いておきます。
例の「論理AND(&&)」とか「論理OR(||)」とか、疲れてると確実に間違う。

まずはこういう書き方が基本ですよね。

//aの値が3~10の範囲内にあればbにtrue、無ければfalse 
var a = 5;
var b;

if(a >= 3 && a <= 10){ 
  b = true; 
}else{
  b = false;
}

こなれた風だと

var b = (a >= 3) && (a <= 10);


それに派生して、突然ですが問題です。

var a = true && false;    

var b = true || false;

aとbに入ってる値はそれぞれ何でしょう?って咄嗟に訊かれても・・・(´Д`)ね
(答)aはfalse、bはtrue


じゃこれは?

var a = "cat" && "mouse";    

var b = "cat" || "mouse";

ネコとネズミの共通点ってなに?っていう話じゃなくて・・・
(答) aは"mouse"、 bは"cat"

・・・って、なんでそうなるの?

"cat"とか"mouse"は、trueと同等と考えると分かりやすいです。
そして式は、左側の値から評価して合致したらそれで終わりになるのです。

つまり必ず

false && なんでも  → false
true || なんでも  → true
になるわけです。


【確認】いろいろと値を変えてみてね(動くかな

var a =  &&  → false
var b =  ||  → false




とても久しぶり(1年ぶり?)にブログを更新したけど、
自分自身全く進歩してないのが痛い。
もっと気軽に書けるといいんだけどにゃぁ。


JavaScript本格入門 ?モダンスタイルによる基礎からAjax・jQueryまで

JavaScript本格入門 ?モダンスタイルによる基礎からAjax・jQueryまで