if-else හි විචල්යවල පරිශීලන පරාසය JavaScript හි
සරල බව සඳහා, සැමවිටම ක්රියාත්මක වන කොන්දේසියක් අප සතුව ඇතැයි උපකල්පනය කරමු:
javascriptif (true) {
}
පහත කේතය සලකා බලමු:
javascriptif (true) {
let res = '!';
}
console.log(res);
ඔබට පෙනෙන පරිදි, res විචල්යයට
'!' අගය පවරා ඇත. කෙසේ වෙතත්,
මෙම කේතය ධාවනය කළහොත්, කොන්සෝලයේ
දෝෂයක් පෙන්වයි!
හේතුව නම්, කර්ලීය වරහන් තුළ ප්රකාශයට පත් කරන ලද විචල්ය ඒවායේ ඇතුළත පමණක් පෙනෙන අතර, ඒවායින් පිටතින් පෙනෙන්නේ නැත. විද්යාත්මකව මෙහි කතා කරන්නේ විචල්යවල පරිශීලන පරාසය සම්බන්ධයෙනි.
කර්ලීය වරහන් තුළ ප්රකාශයට පත් කරන ලද විචල්යවල පරිශීලන පරාසය එම කර්ලීය වරහන් පමණක් බව කිව හැකිය. කෙසේ වෙතත්, විචල්යයක් කර්ලීය වරහන් වලින් පිටත ප්රකාශයට පත් කළේ නම්, එය ඒවා තුළත්, පිටතත් පෙනේ:
javascriptlet res; // විචල්යය පිටතින් ප්රකාශයට පත් කර ඇත
if (true) {
res = '!';
}
console.log(res); // '!' පෙන්වයි
පහත උදාහරණයේ දී, res විචල්යයට
කොන්දේසිය මත රඳා පවතිමින් අගයක් ලෙස
1, හෝ 2 පවරයි:
javascriptlet num = 5;
if (num >= 0) {
let res = 1;
} else {
let res = 2;
}
console.log(res);
කෙසේ වෙතත්, මෙම කේතය ධාවනය කළහොත්, කොන්සෝලයේ දෝෂයක් පෙන්වයි. දැන් ඔබට තේරුම් ගත හැකි පරිදි, සමස්ත ගැටලුවම විචල්යවල පෙනුම සමඟ බැඳී ඇත. ගැටලුව විසඳීම සඳහා විචල්යය කොන්දේසියෙන් පිටතින් ප්රකාශයට පත් කරමු:
javascriptlet test = true;
let res; // විචල්යය කොන්දේසියෙන් පිටතින් ප්රකාශයට පත් කරන්න
if (test) {
res = 1;
} else {
res = 2;
}
console.log(res); // 1 පෙන්වයි
පහත දක්වා ඇති කේතයේ කතුවරයාට වයස
18 අවුරුදු වයසට ළඟා වීම පරීක්ෂා කිරීමට අවශ්ය විය.
කෙසේ වෙතත්, කේතය ක්රියාත්මක නොවේ. කතුවරයාගේ
දෝෂය නිවැරදි කරන්න. ප්රශ්නාත්මක කේතය මෙන්න:
javascriptlet age = 17;
if (age >= 18) {
let adult = true;
} else {
let adult = false;
}
console.log(adult);