Masalah Pilihan Opsyenal Kurungan Kerawang dalam if-else
Walaupun JavaScript membenarkan penyingkatan dengan kurungan kerawang seperti yang ditunjukkan di atas, saya secara amnya tidak mengesyorkan berbuat demikian, kerana ia boleh menjadi punca ralat yang sukar dikesan. Sebagai contoh, katakan terdapat kod berikut:
let num = 3;
if (num > 0)
console.log(num);
Katakan sekarang kita ingin, jika
syarat dipenuhi, mencetak mesej kedua
dengan teks '+++':
let num = 3;
if (num > 0)
console.log(num);
console.log('+++');
Walau bagaimanapun, tanpa kurungan kerawang, hanya mesej pertama yang berada di dalam blok syarat. Maksudnya, baris pertama akan dilaksanakan apabila syarat benar, manakala baris kedua - sentiasa.
Secara praktikal, kod kami bersamaan dengan ini:
let num = 3;
if (num > 0) {
console.log(num);
}
console.log('+++'); // baris ini ternyata berada di luar syarat
Sedangkan kita mahukan kod seperti ini:
let num = 3;
if (num > 0) {
console.log(num);
console.log('+++'); // baris ini berada di dalam syarat
}
Oleh sebab itu, adalah disyorkan untuk sentiasa meletakkan kurungan kerawang, bagi mengelakkan diri daripada terjerumus ke dalam ralat seumpama ini.