ปัญหาของการไม่จำเป็นต้องใช้วงเล็บปีกกาใน if-else
แม้ว่า JavaScript จะอนุญาต ให้เขียนแบบย่อดังที่แสดงไว้ข้างต้นโดยไม่มีวงเล็บปีกกา แต่โดยทั่วไปแล้วฉันไม่แนะนำให้ทำเช่นนั้น เพราะมันเป็นแหล่งที่มาของข้อผิดพลาดที่จับได้ยาก ตัวอย่างเช่น สมมติว่ามีโค้ดต่อไปนี้:
let test = 3;
if (test > 0)
console.log(test);
ตอนนี้สมมติว่าเราตัดสินใจว่าในกรณีที่
เงื่อนไขเป็นจริง เราจะแสดงข้อความที่สอง
พร้อมข้อความ '+++':
let test = 3;
if (test > 0)
console.log(test);
console.log('+++');
อย่างไรก็ตาม หากไม่มีวงเล็บปีกกา จะมีเพียงข้อความแรกเท่านั้นที่อยู่ภายในเงื่อนไข นั่นคือบรรทัดแรกจะทำงาน เมื่อเงื่อนไขเป็นจริง แต่บรรทัดที่สองจะทำงานเสมอ
จริงๆ แล้วโค้ดของเราเทียบเท่ากับสิ่งนี้:
let test = 3;
if (test > 0) {
console.log(test);
}
console.log('+++'); // บรรทัดนี้อยู่ภายนอกเงื่อนไข
แต่สิ่งที่เราต้องการคือโค้ดแบบนี้:
let test = 3;
if (test > 0) {
console.log(test);
console.log('+++'); // บรรทัดนี้อยู่ภายในเงื่อนไข
}
นี่คือเหตุผลที่แนะนำให้ ใส่วงเล็บปีกกาเสมอ เพื่อที่จะไม่ตกอยู่ใน ข้อผิดพลาดประเภทนี้