16 KiB
พื้นฐาน JavaScript: การตัดสินใจ
สเก็ตโน้ตโดย Tomomi Imura
แบบทดสอบก่อนเรียน
การตัดสินใจและการควบคุมลำดับการทำงานของโค้ดช่วยให้โค้ดของคุณนำกลับมาใช้ใหม่ได้และมีความแข็งแกร่ง บทนี้จะครอบคลุมไวยากรณ์สำหรับการควบคุมการไหลของข้อมูลใน JavaScript และความสำคัญเมื่อใช้ร่วมกับประเภทข้อมูล Boolean
🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอเกี่ยวกับการตัดสินใจ
คุณสามารถเรียนบทเรียนนี้ได้ที่ Microsoft Learn!
ทบทวนเกี่ยวกับ Boolean
Boolean มีค่าได้เพียงสองค่าเท่านั้น: true
หรือ false
Boolean ช่วยในการตัดสินใจว่าโค้ดบรรทัดใดควรถูกเรียกใช้เมื่อเงื่อนไขบางอย่างเป็นจริง
ตั้งค่า Boolean ของคุณให้เป็น true หรือ false ได้ดังนี้:
let myTrueBool = true
let myFalseBool = false
✅ Boolean ได้รับการตั้งชื่อตาม George Boole นักคณิตศาสตร์ นักปรัชญา และนักตรรกศาสตร์ชาวอังกฤษ (1815–1864)
ตัวดำเนินการเปรียบเทียบและ Boolean
ตัวดำเนินการใช้เพื่อประเมินเงื่อนไขโดยการเปรียบเทียบ ซึ่งจะสร้างค่าประเภท Boolean ด้านล่างคือตัวอย่างตัวดำเนินการที่ใช้บ่อย
สัญลักษณ์ | คำอธิบาย | ตัวอย่าง |
---|---|---|
< |
น้อยกว่า: เปรียบเทียบสองค่าและคืนค่าประเภท Boolean true หากค่าทางด้านซ้ายมีค่าน้อยกว่าค่าทางด้านขวา |
5 < 6 // true |
<= |
น้อยกว่าหรือเท่ากับ: เปรียบเทียบสองค่าและคืนค่าประเภท Boolean true หากค่าทางด้านซ้ายมีค่าน้อยกว่าหรือเท่ากับค่าทางด้านขวา |
5 <= 6 // true |
> |
มากกว่า: เปรียบเทียบสองค่าและคืนค่าประเภท Boolean true หากค่าทางด้านซ้ายมีค่ามากกว่าค่าทางด้านขวา |
5 > 6 // false |
>= |
มากกว่าหรือเท่ากับ: เปรียบเทียบสองค่าและคืนค่าประเภท Boolean true หากค่าทางด้านซ้ายมีค่ามากกว่าหรือเท่ากับค่าทางด้านขวา |
5 >= 6 // false |
=== |
เท่ากันแบบเข้มงวด: เปรียบเทียบสองค่าและคืนค่าประเภท Boolean true หากค่าทางด้านซ้ายและขวาเท่ากัน และ เป็นประเภทข้อมูลเดียวกัน |
5 === 6 // false |
!== |
ไม่เท่ากัน: เปรียบเทียบสองค่าและคืนค่าประเภท Boolean ตรงข้ามกับที่ตัวดำเนินการเท่ากันแบบเข้มงวดจะคืนค่า | 5 !== 6 // true |
✅ ทดสอบความเข้าใจของคุณโดยเขียนการเปรียบเทียบในคอนโซลของเบราว์เซอร์ มีข้อมูลที่คืนค่ามาแล้วทำให้คุณประหลาดใจหรือไม่?
คำสั่ง If
คำสั่ง if จะรันโค้ดในบล็อกของมันหากเงื่อนไขเป็นจริง
if (condition) {
//Condition is true. Code in this block will run.
}
ตัวดำเนินการเชิงตรรกะมักถูกใช้เพื่อสร้างเงื่อนไข
let currentMoney;
let laptopPrice;
if (currentMoney >= laptopPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
}
คำสั่ง If..Else
คำสั่ง else
จะรันโค้ดในบล็อกของมันเมื่อเงื่อนไขเป็นเท็จ โดย else
เป็นตัวเลือกเสริมสำหรับคำสั่ง if
let currentMoney;
let laptopPrice;
if (currentMoney >= laptopPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
} else {
//Condition is false. Code in this block will run.
console.log("Can't afford a new laptop, yet!");
}
✅ ทดสอบความเข้าใจของคุณเกี่ยวกับโค้ดนี้และโค้ดต่อไปนี้โดยรันในคอนโซลของเบราว์เซอร์ เปลี่ยนค่าของตัวแปร currentMoney และ laptopPrice เพื่อเปลี่ยนค่าที่ console.log()
คืนมา
คำสั่ง Switch
คำสั่ง switch
ใช้เพื่อดำเนินการต่าง ๆ ตามเงื่อนไขที่แตกต่างกัน ใช้คำสั่ง switch
เพื่อเลือกหนึ่งในหลายบล็อกโค้ดที่จะถูกรัน
switch (expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
// program using switch statement
let a = 2;
switch (a) {
case 1:
a = "one";
break;
case 2:
a = "two";
break;
default:
a = "not found";
break;
}
console.log(`The value is ${a}`);
✅ ทดสอบความเข้าใจของคุณเกี่ยวกับโค้ดนี้และโค้ดต่อไปนี้โดยรันในคอนโซลของเบราว์เซอร์ เปลี่ยนค่าของตัวแปร a เพื่อเปลี่ยนค่าที่ console.log()
คืนมา
ตัวดำเนินการเชิงตรรกะและ Boolean
การตัดสินใจอาจต้องการการเปรียบเทียบมากกว่าหนึ่งครั้ง และสามารถเชื่อมโยงกันด้วยตัวดำเนินการเชิงตรรกะเพื่อสร้างค่าประเภท Boolean
สัญลักษณ์ | คำอธิบาย | ตัวอย่าง |
---|---|---|
&& |
AND เชิงตรรกะ: เปรียบเทียบสองนิพจน์ Boolean คืนค่า true เฉพาะเมื่อ ทั้งสองด้านเป็น true | (5 > 6) && (5 < 6 ) //ด้านหนึ่งเป็น false อีกด้านเป็น true คืนค่า false |
|| |
OR เชิงตรรกะ: เปรียบเทียบสองนิพจน์ Boolean คืนค่า true หากมีอย่างน้อยหนึ่งด้านเป็น true | (5 > 6) || (5 < 6) //ด้านหนึ่งเป็น false อีกด้านเป็น true คืนค่า true |
! |
NOT เชิงตรรกะ: คืนค่าตรงข้ามของนิพจน์ Boolean | !(5 > 6) // 5 ไม่ได้มากกว่า 6 แต่ "!" จะคืนค่า true |
เงื่อนไขและการตัดสินใจด้วยตัวดำเนินการเชิงตรรกะ
ตัวดำเนินการเชิงตรรกะสามารถใช้เพื่อสร้างเงื่อนไขในคำสั่ง if..else
let currentMoney;
let laptopPrice;
let laptopDiscountPrice = laptopPrice - laptopPrice * 0.2; //Laptop price at 20 percent off
if (currentMoney >= laptopPrice || currentMoney >= laptopDiscountPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
} else {
//Condition is true. Code in this block will run.
console.log("Can't afford a new laptop, yet!");
}
ตัวดำเนินการปฏิเสธ
คุณได้เห็นแล้วว่าคุณสามารถใช้คำสั่ง if...else
เพื่อสร้างตรรกะตามเงื่อนไขได้ สิ่งใดก็ตามที่ใส่ใน if
จะต้องประเมินเป็น true/false โดยการใช้ตัวดำเนินการ !
คุณสามารถ ปฏิเสธ นิพจน์ได้ มันจะมีลักษณะดังนี้:
if (!condition) {
// runs if condition is false
} else {
// runs if condition is true
}
นิพจน์แบบ Ternary
if...else
ไม่ใช่วิธีเดียวในการแสดงตรรกะการตัดสินใจ คุณยังสามารถใช้สิ่งที่เรียกว่าตัวดำเนินการ ternary ไวยากรณ์ของมันมีลักษณะดังนี้:
let variable = condition ? <return this if true> : <return this if false>
ด้านล่างคือตัวอย่างที่จับต้องได้มากขึ้น:
let firstNumber = 20;
let secondNumber = 10;
let biggestNumber = firstNumber > secondNumber ? firstNumber : secondNumber;
✅ ใช้เวลาสักครู่เพื่ออ่านโค้ดนี้หลาย ๆ ครั้ง คุณเข้าใจหรือไม่ว่าตัวดำเนินการเหล่านี้ทำงานอย่างไร?
สิ่งที่กล่าวไว้ข้างต้นคือ
- หาก
firstNumber
มีค่ามากกว่าsecondNumber
- ให้กำหนดค่า
firstNumber
ให้กับbiggestNumber
- มิฉะนั้นให้กำหนดค่า
secondNumber
นิพจน์ ternary เป็นเพียงวิธีการเขียนโค้ดแบบย่อดังนี้:
let biggestNumber;
if (firstNumber > secondNumber) {
biggestNumber = firstNumber;
} else {
biggestNumber = secondNumber;
}
🚀 ความท้าทาย
สร้างโปรแกรมที่เขียนด้วยตัวดำเนินการเชิงตรรกะก่อน จากนั้นเขียนใหม่โดยใช้ตัวดำเนินการ ternary คุณชอบไวยากรณ์แบบไหนมากกว่ากัน?
แบบทดสอบหลังเรียน
ทบทวนและศึกษาด้วยตนเอง
อ่านเพิ่มเติมเกี่ยวกับตัวดำเนินการที่มีให้ใช้งาน บน MDN
ลองดู operator lookup ที่ยอดเยี่ยมของ Josh Comeau!
งานที่ได้รับมอบหมาย
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้