— javascript, tutorials — 1 min read
今日は制御構文についてやります。
前回はこちら +JavaScript道場:七日目 / 関数について❷
true
またはfalse
として判定される==
と===
の違い制御構文で最低限覚えて置くことはif
とfor
の書き方です。今日は if
をやります。
文字や数字、オブジェクトが一致するかを比較しtrue
またはfalse
の真偽値を返します。
詳しくはこちら!
==
(一致)可能な限り === を使いましょう
1// consoleで試そう2 3// 一致するか比較する4100 == 100 // true5100 == '100' // true6"文字" == "文字" // true7 8// ()で括ってもOK9(100 == 100) // true10(100 == '100') // true11("文字" == "文字") // true12 13var a = "hello"14var b = "hello"15var c = "helloo" // oが多い16 17a == b // true18a == c // false
===
(データ型まで一致、厳密な比較)1// consoleで試そう2 3// 一致するか比較する4100 === 100 // true5100 === '100' // false 文字と数値ではデータ型が異なる
オブジェクトは中身のデータが一緒でも、参照するオブジェクトが一緒じゃない場合 false になります。ここは重要なので覚えておいてください。
1var a = {}2var b = {}3 4a == b // false5 6var c = a7a == c // true
1// 試してみよう2var a = {}3var b = a // a と b は同じ4 5a.name = "JavaScript道場"6console.log(a)7console.log(b)8console.log(a === b)
<
・>
・<=
・=>
(大小比較)1// consoleで試そう2 3var a = 1004a > 100 // aは100より大きい false5a <= 100 // aは100以下 true6a >= 99 // aは99以上 true7a < 99 // aは99より小さい false
if
条件に応じて実行する処理を変えたい場合に使います。
詳しくはこちら!
1if (条件式) { 条件を満たす時に実行する処理 }2 3// サンプルプログラム 4// a の値を変化させて実行結果を確認しよう5var a = 1006if (a > 100) {7 console.log("aは100より大きい")8}
一行で書くこともできます
1// {} が省略できます2if (a > 100) console.log("aは100より大きい")
if
~ else
1var a = 1002if (a > 100) {3 console.log("aは100より大きい")4} else {5 console.log("aは100以下")6}
if
~ else if
~ else
1var a = 1002if (a > 100) {3 console.log("aは100より大きい") // 実行されない4} else if (a < 50) {5 console.log("aは50以下") // 実行されない6} else {7 console.log("aは50~100の間") // 実行される8}
&&
と ||
1var a = true2var b = true3var c = false4 5if (a && b) {6 // a も b も true7}8 9if (a || b) {10 // a または b どちらかが true11}
( )
を使ってわかりやすく書く1if (a || b && c) {2 // a が true または b,c どちらかも true3}4 5if ((a || b) && c) {6 // c が true7 // a または b どちらかが true8 console.log("hello")9}
正確な情報はこちら!
JavaScriptの場合、数値が0以外は全てtrue
、0のみfalse
です
1var a = 100;2if(a) {3 console.log("aはtrue?")4} else {5 console.log("aはfalse?")6}
""
空文字の場合false
、それ以外は true
1var a = "hello";2if(a) {3 console.log("aはtrue.")4} else {5 console.log("aはfalse.")6}7// aはtrue.
1var a = "";2if(a) {3 console.log("aはtrue.")4} else {5 console.log("aはfalse.")6}7// aはfalse.
JavaScript (ECMA-262) false(偽)になるものは下記のみ。
1false2undefined3null4+0,-0,NaN5"" (空文字)
材料からカレーが作れるかを判定する
1var materials1 = [2 { name: "じゃがいも", quantity: 2 },3 { name: "人参", quantity: 3 },4 { name: "牛肉", quantity: 100 },5 { name: "ブロッコリー", quantity: 1 },6 { name: "カレーのルウ", quantity: 1 },7];8 9var materials2 = [10 { name: "じゃがいも", quantity: 2 },11 { name: "人参", quantity: 1 },12 { name: "牛肉", quantity: 100 },13 { name: "ブロッコリー", quantity: 1 },14 { name: "カレーのルウ", quantity: 1 },15];16 17// 必要な材料が必要な個数あるかを判定する18function canCookCurry (materials) {19 const REQ_POTATO = 220 const REQ_CARROT = 321 const REQ_BEEF = 10022 const REQ_ROUX = 123 if(materials.filter((_) => _.name == "じゃがいも" && _.quantity >= REQ_POTATO) == 0){24 return false;25 }26 if(materials.filter((_) => _.name == "人参" && _.quantity >= REQ_CARROT) == 0){27 return false;28 }29 if(materials.filter((_) => _.name == "牛肉" && _.quantity >= 100) == 0){30 return false;31 }32 if(materials.filter((_) => _.name == "カレーのルウ" && _.quantity >= REQ_ROUX) == 0){33 return false;34 }35 return true;36}37console.log(canCookCurry(materials1)); // true38console.log(canCookCurry(materials2)); // false
明日は for をやります