條件語句是在指定條件為true時執(zhí)行的一組命令。
在很多情況下,您都希望根據用戶輸入或其他因素來運行不同的代碼塊。
條件語句是計算機程序的邏輯,決策或流指定的一部分。
在JavaScript中,我們具有以下條件語句:
if語句
if...else語句
else...if語句
switch語句
我們將在下一章討論switch語句。
只有當if指定條件為 true 時,該語句才會執(zhí)行代碼。語法為:
if (condition) { //如果條件為真,則執(zhí)行的代碼塊 }
if (x < 0) { document.getElementById("result").innerHTML = "NEGATIVE"; }測試看看?/?
if...else語句允許您在指定條件的條件為true時執(zhí)行一個代碼塊,在其條件為false的情況下執(zhí)行另一代碼塊。語法為:
if (condition) { //如果條件為真,則執(zhí)行的代碼塊 } else { //如果條件為假,則執(zhí)行的代碼塊 }
var x = -4; if (x < 0) { msg = "NEGATIVE"; } else { msg = "POSITIVE"; }測試看看?/?
如果用戶單擊圖像,以下示例將更改圖像的src屬性的值:
<img id="demo" onclick="changeImage()" src="avatar-female.jpg"> <script> function changeImage() { var image = document.getElementById("demo"); if (image.src.match("female")) { image.src = "avatar-male.jpg"; } else { image.src = "avatar-female.jpg"; } } </script>測試看看?/?
使用if...else,我們可以根據條件是對還是錯來運行代碼塊。但是,有時我們可能有多種可能的條件和輸出,并且需要的不僅僅是兩個選項。執(zhí)行此操作的一種方法是使用else...if語句,該語句可以評估兩個以上可能的結果。語法為:
if (condition1) { //如果condition1為true,則要執(zhí)行的代碼塊 } else if (condition2) { //如果condition1為false并且condition2為true,則要執(zhí)行的代碼塊 } else { //如果condition1為false并且condition2為false則要執(zhí)行的代碼塊 }
// 設置學生的當前等級 var grade = 88; // 檢查成績是否為 A, B, C, D, or F if (grade >= 90) { document.write("A"); } else if (grade >= 80) { document.write("B"); } else if (grade >= 70) { document.write("C"); } else if (grade >= 60) { document.write("D"); } else { document.write("F"); }測試看看?/?
您可以使用嵌套的if ... else語句來增強JavaScript程序的決策能力。
var a = 10, b = 20, c = 30; var answer; if (a > b) { if (a > c) { answer = "A 是三個中最大的"; } else { answer = "C 是三個中最大的"; } } else if (b > c) { answer = "B 是三個中最大的"; } else { answer = "C 是三個中最大的"; }測試看看?/?
三元運算符提供了編寫if ... else語句的簡便方法。
三元運算符使用問號(?)和冒號(:)的語法編寫,如下所示:
(condition) ? expression on true : expression on false
在上面的語法中,condition首先被寫入,然后是?。第一個表達式將在true上執(zhí)行,第二個表達式將在false上執(zhí)行。
要了解三元運算符的工作方式,請考慮以下示例:
var status = (age >= 18) ? "adult" : "minor";測試看看?/?
如果年齡為18歲或以上,則以上語句將值“adult”分配給變量status。否則,它將為status分配值“ minor”。