การคืนค่าก่อนเวลาและประโยคเฝ้าระวัง
ใช้การคืนค่าก่อนเวลาและประโยคเฝ้าระวังเพื่อทำให้เงื่อนไขง่ายขึ้น ลดการซ้อนกัน และทำให้เส้นทางกรณีปกติชัดเจน
การคืนค่าก่อนเวลาและประโยคเฝ้าระวัง เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
บทนำ
เป้าหมาย: เขียนฟังก์ชันให้ชัดเจนขึ้นด้วยการส่งคืนค่าก่อนเวลาเมื่ออินพุตไม่ถูกต้อง เพื่อให้เส้นทางการทำงานปกติสั้นกระชับ
- การส่งคืนค่าก่อนเวลา
- เงื่อนไขป้องกัน
- การซ้อนที่น้อยลง

ไม่มีเงื่อนไขป้องกัน
การซ้อนทำให้งานหลักเข้าไปอยู่ภายในเงื่อนไข ซึ่งอาจขยายจนอ่านได้ยาก
// Nested style without guard
function welcome(name) {
if (name) {
const message = "Hello, " + name + "!";
console.log(message);
} else {
console.log("Name required");
}
}
welcome("Ayla");
welcome("");

ปรับโครงสร้างด้วยเงื่อนไขป้องกัน
จัดการอินพุตที่ไม่ถูกต้องก่อน แล้วเขียนเส้นทางการทำงานปกติโดยใช้การย่อหน้าให้น้อยลง
// Guard clause: return early for bad input
function welcomeSafe(name) {
if (!name) {
console.log("Name required");
return;
}
const message = "Hello, " + name + "!";
console.log(message);
}
welcomeSafe("Ayla");
welcomeSafe("");

เงื่อนไขป้องกันหลายรายการ
ใช้เงื่อนไขป้องกันขนาดเล็กหนึ่งรายการต่อกฎหนึ่งข้อ การส่งคืนค่าแต่ละครั้งก่อนเวลาจะลดความจำเป็นในการซ้อนหลายระดับ
// Multiple guard clauses keep each rule small
function divide(a, b) {
if (typeof a !== "number" || typeof b !== "number") {
console.log("Numbers only");
return;
}
if (b === 0) {
console.log("Cannot divide by zero");
return;
}
const result = a / b;
console.log("Result:", result);
}
divide(6, 3);
divide(6, 0);
divide("6", 3);

ลดการซ้อนด้วยการส่งคืนค่า
ส่งคืนค่าก่อนเวลาสำหรับกรณีล้มเหลว ส่วนบรรทัดสุดท้ายจะส่งคืนความสำเร็จอย่างชัดเจน
// Early returns reduce else blocks
function canVote(age) {
if (typeof age !== "number") {
return false;
}
if (age < 18) {
return false;
}
return true;
}
console.log(canVote(20));
console.log(canVote(15));
console.log(canVote("20"));

คำแนะนำเกี่ยวกับเงื่อนไขป้องกัน
รายการตรวจสอบ:
- ตรวจสอบอินพุตก่อน
- ส่งคืนค่าก่อนเวลาเมื่อเกิดข้อผิดพลาดหรือกรณีขอบ
- ทำให้เงื่อนไขป้องกันแต่ละรายการสั้นและเฉพาะเจาะจง
- เขียนเส้นทางการทำงานปกติไว้ท้ายสุดโดยไม่ซ้อนหลายระดับ

แบบทดสอบเงื่อนไขป้องกัน
ตรวจสอบอย่างรวดเร็ว: เงื่อนไขป้องกันคืออะไร

สรุปทบทวน
สรุปทบทวน: ใช้เงื่อนไขป้องกันเพื่อจัดการอินพุตที่ bad ก่อน ส่งคืนค่าก่อนเวลา และทำให้ตรรกะหลักแบนราบและอ่านง่าย

คำถามที่พบบ่อย
บทเรียน “การคืนค่าก่อนเวลาและประโยคเฝ้าระวัง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การคืนค่าก่อนเวลาและประโยคเฝ้าระวัง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส JavaScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การคืนค่าก่อนเวลาและประโยคเฝ้าระวัง”
ใช้การคืนค่าก่อนเวลาและประโยคเฝ้าระวังเพื่อทำให้เงื่อนไขง่ายขึ้น ลดการซ้อนกัน และทำให้เส้นทางกรณีปกติชัดเจน คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน JavaScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน JavaScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน
บทเรียน “การคืนค่าก่อนเวลาและประโยคเฝ้าระวัง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน JavaScript Academy นี้ได้ไหม
ได้ บทเรียน JavaScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- if/else และ switch — รูปแบบหลัก
- ลูป: for, while, do…while, for…of กับ for…in
- การคืนค่าก่อนเวลาและประโยคเฝ้าระวัง