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:
javascriptlet num = 3;
if (num > 0)
console.log(num);
Katakan sekarang kita ingin, jika
syarat dipenuhi, mencetak mesej kedua
dengan teks '+++':
javascriptlet 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:
javascriptlet num = 3;
if (num > 0) {
console.log(num);
}
console.log('+++'); // baris ini ternyata berada di luar syarat
Sedangkan kita mahukan kod seperti ini:
javascriptlet 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.