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('+++'); // මෙම පේළිය කොන්දේසිය තුළ ඇත
}
හරියටම මේ නිසා සර්පාකාර වරහන් සැමවිටම තබා ගැනීම නිර්දේශ කෙරේ, එවැනි වර්ගයේ දෝෂවලට ගොදුරු නොවන ලෙඩ.