जावास्क्रिप्ट में if-else कंस्ट्रक्शन में वेरिएबल्स के स्कोप के बारीकियां
वेरिएबल्स के स्कोप में कुछ
बारीकियां होती हैं। आइए इसे एक उदाहरण से समझते हैं।
आइए हम अपनी कंडीशन के बाहर एक वेरिएबल
res को एक वैल्यू के साथ डिक्लेयर करें, और अंदर
कंडीशन में इस वैल्यू को दूसरी वैल्यू में बदल दें:
javascriptlet res = 1;
if (true) {
res = 2;
}
console.log(res); // 2 प्रिंट करेगा
जैसा कि आप देख रहे हैं, वेरिएबल res अंदर
कंडीशन में बदल गई।
हालांकि, सब कुछ बदल जाएगा,
यदि अंदर कंडीशन में वेरिएबल
res को let के through भी डिक्लेयर किया जाए:
javascriptlet res = 1;
if (true) {
let res = 2; // वेरिएबल को let के through डिक्लेयर करें
}
console.log(res); // 1 प्रिंट करेगा, 2 नहीं!
यहां पूरी बात यह है कि कंडीशन के अंदर
let के through वेरिएबल का डिक्लेरेशन एक लोकल
वेरिएबल res बना देता है।
यानी कंडीशन के अंदर एक वेरिएबल
res exists करती है,
और कंडीशन के बाहर - दूसरी।
इसका यकीन करना, वेरिएबल का मान
कंसोल में अंदर कंडीशन में प्रिंट करके किया जा सकता है:
javascriptlet res = 1;
if (true) {
let res = 2;
console.log(res); // 2 प्रिंट करेगा
}
console.log(res); // 1 प्रिंट करेगा
नीचे दिए गए कोड के लेखक उम्र की जांच
18 साल पूरे होने पर करना चाहते थे।
हालांकि, कोड किसी भी उम्र के मान पर
कंसोल में undefined मान प्रिंट करता है।
कोड लेखक की गलती को सही करें। यहां समस्या वाला कोड है:
javascriptlet age = 17;
let adult;
if (age >= 18) {
let adult = true;
} else {
let adult = false;
}
console.log(adult);
नीचे दिए गए कोड के लेखक उम्र की जांच
18 साल पूरे होने पर करना चाहते थे।
कोड की जांच के बाद पता चला कि यदि
उम्र 18 साल के बराबर या अधिक है, तो
वेरिएबल adult में true लिखा जाता है,
जैसा होना चाहिए, हालांकि, यदि उम्र कम है
18 से, तो वेरिएबल adult का
मान undefined होता है। लेखक की गलती
को सही करें।
यहां समस्या वाला कोड है:
javascriptlet age = 17;
let adult;
if (age >= 18) {
adult = true;
} else {
let adult = false;
}
console.log(adult);
नीचे दिए गए कोड के लेखक उम्र की जांच
करना चाहते थे। हालांकि, कोड किसी भी
उम्र के मान पर कंसोल में undefined
मान प्रिंट करता है। लेखक की गलती को सही करें।
यहां समस्या वाला कोड है:
javascriptlet 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 मान प्रिंट करता है। लेखक की गलती
को सही करें।
यहां समस्या वाला कोड है:
javascriptlet age = 19;
let res;
if (age >= 18) {
let res;
if (age <= 23) {
res = '18 से 23';
} else {
res = '23 से अधिक';
}
} else {
res = '18 से कम';
}
console.log(res);