คำชี้แจงการเปลี่ยนจาวาสคริปต์
คำswitch
สั่งนี้ใช้เพื่อดำเนินการต่าง ๆ ตามเงื่อนไขที่ต่างกัน
คำชี้แจงการเปลี่ยน JavaScript
ใช้switch
คำสั่งเพื่อเลือกบล็อคโค้ดใดบล็อกหนึ่งที่จะดำเนินการ
ไวยากรณ์
switch(expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
นี่คือวิธีการทำงาน:
- นิพจน์สวิตช์จะถูกประเมินหนึ่งครั้ง
- ค่าของนิพจน์จะถูกเปรียบเทียบกับค่าของแต่ละกรณี
- หากมีการจับคู่ โค้ดที่เกี่ยวข้องจะถูกดำเนินการ
- หากไม่มีการจับคู่ บล็อกโค้ดเริ่มต้นจะถูกดำเนินการ
ตัวอย่าง
วิธี การgetDay()
ส่งกลับวันทำงานเป็นตัวเลขระหว่าง 0 ถึง 6
(อาทิตย์=0, จันทร์=1, อังคาร=2 ..)
ตัวอย่างนี้ใช้หมายเลขวันในการคำนวณชื่อวันทำงาน:
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";
}
ผลลัพธ์ของวันจะเป็น:
Saturday
คำสำคัญ
เมื่อ JavaScript เข้าถึงbreak
คีย์เวิร์ด มันจะแยกตัวออกจากบล็อกสวิตช์
การดำเนินการนี้จะหยุดการดำเนินการภายในบล็อกสวิตช์
ไม่จำเป็นต้องทำลายเคสสุดท้ายในบล็อกสวิตช์ บล็อกแตก (สิ้นสุด) อยู่ที่นั่นอยู่แล้ว
หมายเหตุ:หากคุณละเว้นคำสั่งแบ่ง กรณีต่อไปจะถูกดำเนินการแม้ว่าการประเมินจะไม่ตรงกับกรณีและปัญหา
คำหลักเริ่มต้น
คีย์เวิร์ดระบุโค้ด ที่default
จะรันหากไม่มีตัวพิมพ์ตรงกัน:
ตัวอย่าง
วิธี การgetDay()
ส่งกลับวันทำงานเป็นตัวเลขระหว่าง 0 ถึง 6
ถ้าวันนี้ไม่ใช่วันเสาร์ (6) หรือวันอาทิตย์ (0) ให้เขียนข้อความเริ่มต้น:
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";
}
ผลลัพธ์ของข้อความจะเป็น:
Today is Saturday
กรณีdefault
ไม่จำเป็นต้องเป็นกรณีสุดท้ายในบล็อกสวิตช์:
ตัวอย่าง
switch (new Date().getDay()) {
default:
text = "Looking forward to the Weekend";
break;
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
}
หากdefault
ไม่ใช่กรณีสุดท้ายในบล็อกสวิตช์ อย่าลืมปิดกรณีเริ่มต้นด้วยการหยุดพัก
บล็อกรหัสทั่วไป
บางครั้งคุณอาจต้องการให้กรณีสวิตช์ต่างๆ ใช้รหัสเดียวกัน
ในกรณีตัวอย่างนี้ 4 และ 5 ใช้บล็อกรหัสเดียวกัน และ 0 และ 6 ใช้บล็อกรหัสอื่นร่วมกัน:
ตัวอย่าง
switch (new Date().getDay()) {
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
break;
default:
text = "Looking forward to the Weekend";
}
รายละเอียดการสลับ
หากมีหลายกรณีที่ตรงกับค่าของเคส ระบบจะเลือกเคสแรก
หากไม่พบกรณีที่ตรงกัน โปรแกรมจะยังคงใช้ป้ายกำกับเริ่มต้น
ถ้าไม่พบป้ายชื่อเริ่มต้น โปรแกรมจะดำเนินต่อไปยังคำสั่งหลังจากสวิตช์
การเปรียบเทียบอย่างเข้มงวด
กรณีสวิตช์ใช้ การเปรียบเทียบ ที่เข้มงวด (===)
ค่าต้องเป็นประเภทเดียวกันจึงจะจับคู่ได้
การเปรียบเทียบที่เข้มงวดสามารถเป็นจริงได้ก็ต่อเมื่อตัวถูกดำเนินการเป็นประเภทเดียวกัน
ในตัวอย่างนี้จะไม่มีการจับคู่สำหรับ x:
ตัวอย่าง
let x = "0";
switch (x) {
case 0:
text = "Off";
break;
case 1:
text = "On";
break;
default:
text = "No value found";
}