論理系-「真」か「偽」を意味する
①真の場合
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
•厳密な比較の例
document.write('10' == 10); //=> true
document.write('10' === 10); //=> false
以下比較演算子の一覧です。
演算子 | 意味 | 例 |
---|---|---|
== | 左右の値が同じなら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歳以上です
この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番目という存在しないインデックスは存在しない
null
nullは「何もない」と意味する値であり、例えば明示的に「この変数に値がありません」というときに利用する。
例↓
var person = {
name: '美浜ちよ',
age: 10,
gender: 'female',
url: null
};
次の二つのプロパティを出したときの違いを見てみよう。(nameを出すと「美浜ちよ」だがurlを出すと「null」を返してくる)
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はありません
||を使った例
||は「〜か〜のどちらか」の意味です。
var name = '滝野とも';
if (name === '美浜ちよ' || name === '滝野とも') {
document.write('美浜さんか滝野さんです');
} //=> 美浜さんか滝野さんです