JavaScript හි if-else ගොඩනැගිලිවල විචල්ය දෘෂ්ටි ක්ෂේත්රයේ සූක්ෂම කරුණු
විචල්ය දෘෂ්ටි ක්ෂේත්රයට යම් සූක්ෂමතාවයක් ඇත.
අපි එය උදාහරණයකින් සලකා බලමු.
අපි අපගේ කොන්දේසියෙන් පිටත විචල්යයක්
res එක් අගයක් සමඟ ප්රකාශ කර, ඇතුළත
කොන්දේසිය එම අගය වෙනත් එකකට වෙනස් කරමු:
let res = 1;
if (true) {
res = 2;
}
console.log(res); // ප්රතිදානය 2 වේ
ඔබට පෙනෙන පරිදි, res විචල්යය වෙනස් විය
කොන්දේසිය ඇතුළත. කෙසේවෙතත්, සියල්ල වෙනස් වනු ඇත,
කොන්දේසිය ඇතුළත ද විචල්යය
res let හරහා ප්රකාශ කරන්නේ නම්:
let res = 1;
if (true) {
let res = 2; // විචල්යය let හරහා ප්රකාශ කරන්න
}
console.log(res); // ප්රතිදානය 1 වේ, 2 නොවේ!
මෙහි සම්පූර්ණ කාරණය වන්නේ විචල්යය ප්රකාශ කිරීම
let හරහා කොන්දේසිය ඇතුළත res යන පළාත්පාර විචල්යයක්
සෑදූ බවයි.
එනම් කොන්දේසිය ඇතුළත එක් විචල්යයක් පවතී
res, සහ කොන්දේසියෙන් පිටත - තවත් එකක්.
මෙය සහතික කර ගත හැක්කේ විචල්යයේ අගය
කොන්දේසිය ඇතුළත කොන්සෝලයට ප්රතිදානය කිරීමෙනි:
let res = 1;
if (true) {
let res = 2;
console.log(res); // ප්රතිදානය 2 වේ
}
console.log(res); // ප්රතිදානය 1 වේ
පහත දක්වා ඇති කේතයේ කතුවරයාට අවශ්ය වූයේ
වයස් පරීක්ෂාවක් සිදු කිරීමට 18
වයසට ළඟා වීම. කෙසේවෙතත්, කේතය, ඕනෑම වයස් අගයකදී
කොන්සෝලයට undefined අගය
ප්රතිදානය කරයි.
කේත කතුවරයාගේ දෝෂය සංශෝධනය කරන්න. පහත දෝෂ සහිත කේතය ඇත:
let age = 17;
let adult;
if (age >= 18) {
let adult = true;
} else {
let adult = false;
}
console.log(adult);
පහත දක්වා ඇති කේතයේ කතුවරයාට අවශ්ය වූයේ
වයස් පරීක්ෂාවක් සිදු කිරීමට 18
වයසට ළඟා වීම. කේතය පරීක්ෂා කිරීමෙන් පසුව හෙළි වූයේ
වයස 18 ට සමාන හෝ වැඩි නම්,
adult විචල්යයට true ලෙස අගයන් ලියා ඇති බව,
එය විය යුතු පරිදිම, කෙසේවෙතත්, වයස අඩු නම්
18, adult විචල්යයට
undefined අගයක් ඇත.
කේත කතුවරයාගේ දෝෂය සංශෝධනය කරන්න.
පහත දෝෂ සහිත කේතය ඇත:
let age = 17;
let adult;
if (age >= 18) {
adult = true;
} else {
let adult = false;
}
console.log(adult);
පහත දක්වා ඇති කේතයේ කතුවරයාට අවශ්ය වූයේ
වයස් පරීක්ෂාවක් සිදු කිරීමට. කෙසේවෙතත්, කේතය, ඕනෑම
වයස් අගයකදී කොන්සෝලයට
undefined අගය ප්රතිදානය කරයි.
කේත කතුවරයාගේ දෝෂය සංශෝධනය කරන්න.
පහත දෝෂ සහිත කේතය ඇත:
let age = 17;
let res;
if (age >= 18) {
if (age <= 23) {
let res = '18 සිට 23 දක්වා';
} else {
let res = '23 ට වැඩි';
}
} else {
let res = '18 ට අඩු';
}
console.log(res);
පහත දක්වා ඇති කේතයේ කතුවරයාට අවශ්ය වූයේ
වයස් පරීක්ෂාවක් සිදු කිරීමට. කේතය, කෙසේවෙතත්, වයස් අගය
18 ට වඩා වැඩි වූ විට
කොන්සෝලයට undefined අගය
ප්රතිදානය කරයි. සංශෝධනය කරන්න
කේත කතුවරයාගේ දෝෂය.
පහත දෝෂ සහිත කේතය ඇත:
let age = 19;
let res;
if (age >= 18) {
let res;
if (age <= 23) {
res = '18 සිට 23 දක්වා';
} else {
res = '23 ට වැඩි';
}
} else {
res = '18 ට අඩු';
}
console.log(res);