ปัญหาของการไม่จำเป็นต้องใช้วงเล็บปีกกาใน if-else

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

javascriptlet test = 3;

if (test > 0)
  console.log(test);

ตอนนี้สมมติว่าเราตัดสินใจว่าในกรณีที่ เงื่อนไขเป็นจริง เราจะแสดงข้อความที่สอง พร้อมข้อความ '+++':

javascriptlet test = 3;

if (test > 0)
  console.log(test);
  console.log('+++');

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

จริงๆ แล้วโค้ดของเราเทียบเท่ากับสิ่งนี้:

javascriptlet test = 3;

if (test > 0) {
  console.log(test);
}

console.log('+++'); // บรรทัดนี้อยู่ภายนอกเงื่อนไข

แต่สิ่งที่เราต้องการคือโค้ดแบบนี้:

javascriptlet test = 3;

if (test > 0) {
  console.log(test);
  console.log('+++'); // บรรทัดนี้อยู่ภายในเงื่อนไข
}

นี่คือเหตุผลที่แนะนำให้ ใส่วงเล็บปีกกาเสมอ เพื่อที่จะไม่ตกอยู่ใน ข้อผิดพลาดประเภทนี้