Omvang van veranderlikes in if-else in JavaScript
Laat ons vir eenvoud 'n altyd-uitvoerende voorwaarde hê:
if (true) {
}
Kom ons kyk na die volgende kode:
if (true) {
let res = '!';
}
console.log(res);
Soos jy kan sien, moet die waarde '!'
in die veranderlike res
gestoor word. As jy hierdie kode egter uitvoer,
sal 'n fout in die konsole vertoon word!
Die ding is dat veranderlikes wat binne die krulhakies verklaar is, slegs binne daardie hakies sigbaar is, en nie daarbuite nie. In wetenskaplike terme word hier gepraat oor die omvang van veranderlikes.
Ons kan sê dat die omvang van veranderlikes wat binne krulhakies verklaar word, slegs daardie krulhakies is. As 'n veranderlike egter buite die krulhakies verklaar word, dan is dit sigbaar beide binne en buite hulle:
let res; // veranderlike verklaar buite
if (true) {
res = '!';
}
console.log(res); // sal '!' uitvoer
In die volgende voorbeeld word die waarde 1
of die waarde 2 in die veranderlike res
gestoor, afhangende van die voorwaarde:
let num = 5;
if (num >= 0) {
let res = 1;
} else {
let res = 2;
}
console.log(res);
As jy hierdie kode egter uitvoer, sal 'n fout in die konsole vertoon word. Soos jy nou al verstaan, het alles te make met die sigbaarheid van veranderlikes. Om die probleem op te los, laat ons die veranderlike buite die voorwaarde verklaar:
let test = true;
let res; // verklaar die veranderlike buite die voorwaarde
if (test) {
res = 1;
} else {
res = 2;
}
console.log(res); // sal 1 uitvoer
Die outeur van die onderstaande kode wou
'n ouderdomskontrole uitvoer vir die bereiking van 18
jaar. Die kode werk egter nie. Korrigeer
die outeur se fout. Hier is die problematiese kode:
let age = 17;
if (age >= 18) {
let adult = true;
} else {
let adult = false;
}
console.log(adult);