網頁全端開發JavaScript_0920

邏輯判斷


AND(&&)運算子只有在兩邊的運算結果為true時,整個運算式的結果才為true

例--A and BAB都必須是true, 只要AB有1個是false,結果是false


運算式1 && 運算式2
1 true && true true 先判斷運算式1 為 true,接著判斷運算式2 也為 true,結果為 true
2 true && false false 先判斷運算式1 為 true,接著判斷運算式2 為 false,結果為 false
3 false && true false 先判斷運算式1 為 false,不判斷運算式2,結果為 false
4 false && false false 先判斷運算式1 為 false,不判斷運算式2,結果為 false

使用於 布林值時會回傳布林型態的值,用於非布林型態值時,回傳兩指定運算元之一

  • AND &&
  • 假如 左邊運算式 可以被轉換成 false 的話,回傳 左邊的值
  • 假如 左邊運算式 可以被轉換成 True 的話,回傳 右邊的值

下圖截自 MDN


OR( || )任一個運算元為true就回傳true,若全部的運算元為false則回傳false。

例--A or B只要AB有1個是true,結果都會是true

運算式1 || 運算式2
1 true || true true 先判斷運算式1 為 true,不判斷運算式2,結果為 true
2 true || false true 先判斷運算式1 為 true,不判斷運算式2,結果為 true
3 false || true true 先判斷運算式1 為 false,接著判斷運算式2 為 true,結果為 true
4 false || false false 先判斷運算式1 為 false,接著判斷運算式2 為 false,結果為 false


  • OR ||
  • 假如 左邊運算式 可以被轉換成 True 的話,回傳 左邊的值
  • 假如 左邊運算式 可以被轉換成 false 的話,回傳 右邊的值
下圖截自 MDN


NOT ( ! )使結果相反,將原本為 true 的轉換為 false,原本為 false 的轉換為 true

# 結果
1 ! true false
2 ! false true
3 ! 0 true
4 ! 1 (或其他非零的數值) false
5 ! "字串" false


練習題

讓使用者輸入年齡,系統依照年齡顯示相對應票價

  • 12歲以下為兒童票,100元
  • 12~65歲為成人票,250元
  • 65歲以上為敬老票,150元
                      
                          let age = prompt(" 請輸入年齡 : ");
                          age = Number(age);
                          
                          if (age >=0 && age <= 12 ){
                              alert("兒童票一張100元");
                          } else if (age > 12 && age <= 65 ){
                              alert("成人票一張250元");
                          } else if (age > 65 && age <=125){
                              alert("敬老票一張150元")
                          } else {
                            alert("請輸入正確年齡")  
                          }