ცვლადების ხილვადობის არეალი if-else-ში JavaScript-ში
სიმარტივისთვის დავუშვათ, გვაქვს ყოველთვის შესრულებადი პირობა:
if (true) {
}
განვიხილოთ შემდეგი კოდი:
if (true) {
let res = '!';
}
console.log(res);
როგორც ხედავთ, ცვლადში res
უნდა ჩაიწეროს მნიშვნელობა '!'. თუმცა,
თუ ამ კოდს გაუშვებთ, კონსოლში გამოჩნდება
შეცდომა!
საქმე ისაა, რომ ცვლადები, რომლებიც გამოცხადებულია ფიგურული ფრჩხილების შიგნით, ხილვადია მხოლოდ ამ ფრჩხილების შიგნით და არ ჩანს მათ გარეთ. სამეცნიერო თვალსაზრისით აქ საუბარია ცვლადების ხილვადობის არეალზე.
შეგვიძლია ვთქვათ, რომ ცვლადების ხილვადობის არეალი, რომლებიც გამოცხადებულია ფიგურული ფრჩხილების შიგნით, არის მხოლოდ ეს ფიგურული ფრჩხილები. თუმცა, თუ ცვლადი გამოცხადებულია ფიგურული ფრჩხილების გარეთ, მაშინ ის ხილვადია როგორც მათ შიგნით, ასევე გარეთ:
let res; // ცვლადი გამოცხადებულია გარეთ
if (true) {
res = '!';
}
console.log(res); // გამოიტანს '!'
შემდეგ მაგალითში ცვლადში res
პირობიდან გამომდინარე იწერება ან
მნიშვნელობა 1, ან მნიშვნელობა 2:
let num = 5;
if (num >= 0) {
let res = 1;
} else {
let res = 2;
}
console.log(res);
თუმცა, თუ ამ კოდს გაუშვებთ, კონსოლში გამოჩნდება შეცდომა. როგორც ახლა უკვე გესმით, მთელი საქმე ცვლადების ხილვადობაშია. პრობლემის მოსაგვარებლად გამოვაცხადოთ ცვლადი პირობის გარეთ:
let test = true;
let res; // გამოვაცხადოთ ცვლადი პირობის გარეთ
if (test) {
res = 1;
} else {
res = 2;
}
console.log(res); // გამოიტანს 1
ქვემოთ მოცემული კოდის ავტორს სურდა შეესრულებინა
ასაკის შემოწმება 18
წლის მიღწევაზე. კოდი, თუმცა, არ მუშაობს. გამასწორეთ
კოდის ავტორის შეცდომა. აი პრობლემური კოდი:
let age = 17;
if (age >= 18) {
let adult = true;
} else {
let adult = false;
}
console.log(adult);