1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

条件判定①

Last updated at Posted at 2014-01-31

論理系-「真」か「偽」を意味する

①真の場合

var name = '美浜ちよ'
document.write(name === '美浜ちよ'); //=> true

②偽の場合

var name = '美浜ちよ'
document.write(name === '水原暦'); //=> false

これを使って条件分岐を書くと次のようになります。

var name = '美浜ちよ';
if (name === '美浜ちよ') {
    document.write('名前は美浜ちよです');
} //=> 名前は美浜ちよです

上の例ではname === '美浜ちよ'trueのときのみ3行目のdocument.writeが実行されます。

比較演算子

比較演算子は、2つの値を比較してtrueかfalseをかえす。
以下しよう例

var name = '美浜ちよ';
document.write(name === '美浜ちよ');
// nameが'美浜ちよ'の場合はtrue、そうでない場合はfalse

var age = 5;
document.write(age >= 5);
// ageが「5以上」のときはtrue、5未満のときはfalse

比較演算01.png

•厳密な比較の例

document.write('10' == 10); //=> true
document.write('10' === 10); //=> false

厳密.png

以下比較演算子の一覧です。

演算子 意味
== 左右の値が同じならtrue a == b
!= 左右の値が異なるならtrue a != b
=== 左右の値が同じならtrue(厳密) a === b
!== 左右の値が異なるならtrue(厳密) a !== b
> 左の方が大きいならtrue a > b
>= 左の方が大きいか同じなるならtrue a >= b
< 右の方が大きいならtrue a < b
<= 右の方が大きいか同じなるならtrue a <= b

条件式

条件分岐をするために指定する式を「条件式」と言います。
次の例をみて下さい。

var age = 25
if (age >= 20) {
    document.write('年齢は20歳以上です');
}; //=>  年齢は20歳以上です 

条件式.png

このage >= 20が条件式です。

条件式には比較演算子だけでなく、文字列や数値などを指定することも可能です。

var name = '美浜ちよ';
if (name) {
    document.write('名前が設定されています');
}; //=> 名前が設定されています

この例ではnameが条件式ですが、条件式に「true」と「false」以外が指定されたときは、必ず「true」か「false」に変換して評価する決まりがある。
では何が「true」で何が「false」になるかは、次の仕様で決められている。

falseに変換されるケース

「データがない」とみなされる値は、条件式で「false」に解釈される。
具体的には以下の3つがfalseになります。
•0(数値のゼロ)
•NaN(Not a Numberの略。0/0など、数値として扱うことの出来ないデータのこと)
•空文字(''や""など、何も文字を指定してない0文字の文字列のこと)

例1

var name = '';
if (name) {
    document.write('名前が設定されています');
}; // 空文字の為「false」になり実行されない

undefined

undefinedとは「定義されてない」という意味。
例↓

var x; //変数xの箱は作ったが箱の中身は定義されてない

配列の存在しないインデックスや、オブジェクトの存在しないプロパティ名を指定した場合もundefinedになる。
以下例↓

var arr = ['ちよ', 'おおさか'];
document.write(arr[10]); //=>undefined
// 10番目という存在しないインデックスは存在しない

underined.png

null

nullは「何もない」と意味する値であり、例えば明示的に「この変数に値がありません」というときに利用する。
例↓

var person = {
name: '美浜ちよ',
age: 10,
gender: 'female',
url: null
};

次の二つのプロパティを出したときの違いを見てみよう。(nameを出すと「美浜ちよ」だがurlを出すと「null」を返してくる)

null_1.png
null_2.png

trueに変換される項目

  • 100(数値)
  • -100(マイナスの数値)
  • '0'(文字列のゼロ)
  • '美浜ちよ'(文字列)
  • [1, 2, 3](配列)
  • [](空の配列)
  • { key: 'val' }(オブジェクト)
  • {}(空のオブジェクト)
  • function add() {}(関数)

よって条件式nameの値が'美浜ちよ'という文字列になる以下の様な場合は実行される。

var name = '美浜ちよ';
if (name) {
    document.write('名前が設定されています'); // 実行される
};

&&と!を使った例

&&は「かつ」、!〜は「〜ではない」

var person = {
name: '美浜ちよ',
age: 10,
gender: 'female',
url: null
};
if (person.name === '美浜ちよ' && !person.url) {
    document.write('美浜さんのURLはありません');
}; //=>美浜さんのURLはありません

&&と!.png

||を使った例

||は「〜か〜のどちらか」の意味です。

var name = '滝野とも';
if (name === '美浜ちよ' || name === '滝野とも') {
document.write('美浜さんか滝野さんです');
} //=> 美浜さんか滝野さんです

||の使用.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?