คำสั่งเปลี่ยน JavaScript
ตัวอย่าง
ดำเนินการบล็อกของรหัสตามการป้อนข้อมูลของผู้ใช้:
var text;
var fruits = document.getElementById("myInput").value;
switch(fruits) {
case "Banana":
text = "Banana is good!";
break;
case "Orange":
text = "I am not a fan of orange.";
break;
case "Apple":
text = "How you like them apples?";
break;
default:
text = "I have never heard of that fruit...";
}
ตัวอย่าง "ลองใช้เอง" เพิ่มเติมด้านล่าง
ความหมายและการใช้งาน
คำสั่ง switch รันบล็อกของโค้ดขึ้นอยู่กับกรณีต่างๆ
คำสั่ง switch เป็นส่วนหนึ่งของคำสั่ง "Conditional" ของ JavaScript ซึ่งใช้เพื่อดำเนินการต่างๆ ตามเงื่อนไขที่แตกต่างกัน ใช้สวิตช์เพื่อเลือกหนึ่งในหลาย ๆ บล็อกของรหัสที่จะดำเนินการ นี่เป็นวิธีแก้ปัญหาที่สมบูรณ์แบบสำหรับ คำสั่งif/else ที่ซ้อนกันแบบยาว
คำสั่ง switch จะประเมินนิพจน์ ค่าของนิพจน์จะถูกเปรียบเทียบกับค่าของแต่ละกรณีในโครงสร้าง หากมีการจับคู่ โค้ดที่เกี่ยวข้องจะถูกดำเนินการ
คำสั่ง switch มักใช้ร่วมกับตัวแบ่งหรือคีย์เวิร์ดเริ่มต้น (หรือทั้งสองอย่าง) ทั้งสองตัวเลือกนี้เป็นทางเลือก:
คีย์เวิร์ด ตัวแบ่งแยกจากบล็อกสวิตช์ การดำเนินการนี้จะหยุดการเรียกใช้โค้ดและ/หรือการทดสอบกรณีและปัญหาภายในบล็อกมากขึ้น หากละเว้น บล็อกโค้ดถัดไปในคำสั่ง switch จะถูกดำเนินการ
คีย์เวิร์ด เริ่มต้นจะระบุโค้ดที่จะเรียกใช้หากไม่มีตัวพิมพ์ตรงกัน สามารถมีคำหลักเริ่มต้นได้เพียงคำเดียวในสวิตช์ แม้ว่านี่จะเป็นทางเลือก แต่ขอแนะนำให้ใช้ เนื่องจากจะช่วยดูแลกรณีที่ไม่คาดคิด
ไวยากรณ์
switch(expression) {
case n:
code block
break;
case n:
code block
break;
default:
default code block
}
ค่าพารามิเตอร์
Parameter | Description |
---|---|
expression | Required. Specifies an expression to be evaluated. The expression is evaluated once. The value of the expression is compared with the values of each case labels in the structure. If there is a match, the associated block of code is executed |
ตัวอย่างเพิ่มเติม
ตัวอย่าง
ใช้ตัวเลขวันทำงานของวันนี้ในการคำนวณชื่อวันทำงาน (วันอาทิตย์=0, วันจันทร์=1, วันอังคาร=2, ...):
var day;
switch (new Date().getDay()) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
break;
default:
day = "Unknown Day";
}
ตัวอย่าง
ถ้าวันนี้ไม่ใช่วันเสาร์หรือวันอาทิตย์ ให้เขียนข้อความเริ่มต้น:
var text;
switch (new Date().getDay()) {
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
break;
default:
text = "Looking forward to the Weekend";
}
ตัวอย่าง
บางครั้ง คุณอาจต้องการให้กรณีต่างๆ ใช้รหัสเดียวกัน หรือข้ามไปที่ค่าเริ่มต้นทั่วไป
โปรดทราบว่าในตัวอย่างนี้ กรณีและปัญหาใช้บล็อกรหัสเดียวกัน และกรณีเริ่มต้นไม่จำเป็นต้องเป็นกรณีสุดท้ายในบล็อกสวิตช์ (อย่างไรก็ตาม หากค่าเริ่มต้นไม่ใช่กรณีสุดท้ายในบล็อกสวิตช์ อย่าลืมยุติกรณีดังกล่าว ด้วยการหยุดพัก)
var text;
switch (new Date().getDay()) {
case 1:
case 2:
case 3:
default:
text = "Looking forward to the Weekend";
break;
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
}
ตัวอย่าง
การใช้คำสั่ง switch เพื่อรันบล็อกของโค้ดตามการป้อนข้อมูลของผู้ใช้ จากกล่องพร้อมต์:
var text;
var favDrink = prompt("What's your favorite cocktail drink?");
switch(favDrink) {
case "Martini":
text = "Excellent choice! Martini is good for your soul.";
break;
case "Daiquiri":
text = "Daiquiri is my favorite too!";
break;
case "Cosmopolitan":
text = "Really? Are you sure the Cosmopolitan is your favorite?";
break;
default:
text = "I have never heard of that one..";
}
หน้าที่เกี่ยวข้อง
บทช่วยสอน JavaScript: JavaScript If...Else Statements
บทช่วยสอน JavaScript: คำสั่งสวิตช์ JavaScript
การอ้างอิง JavaScript: JavaScript if/else Statement
การอ้างอิง JavaScript: JavaScript แบ่งคำสั่ง
รองรับเบราว์เซอร์
switch
เป็นคุณลักษณะ ECMAScript1 (ES1)
ES1 (JavaScript 1997) ได้รับการสนับสนุนอย่างสมบูรณ์ในเบราว์เซอร์ทั้งหมด:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |