जावास्क्रिप्ट में फ़ंक्शनों में समान चर नाम

मान लीजिए कि फ़ंक्शन के बाहर और अंदर दोनों जगह एक चर num है। इस स्थिति में, स्थानीय चर num में किए गए किसी भी परिवर्तन का वैश्विक चर num पर कोई प्रभाव नहीं पड़ता:

javascriptlet num = 1; // वैश्विक चर

function func() {
  let num = 2; // स्थानीय चर
  console.log(num);
}
func(); // फ़ंक्शन को कॉल करते हैं, 2 आउटपुट होगा

console.log(num); // 1 आउटपुट होगा - वैश्विक चर नहीं बदला

लेकिन, अगर हम स्थानीय चर num को let के माध्यम से घोषित करना भूल जाते हैं, तो फ़ंक्शन के अंदर कोई स्थानीय चर num नहीं बनेगा, बल्कि केवल वैश्विक चर बदल जाएगा:

javascriptlet num = 1;

function func() {
  num = 2; // let लिखना भूल गए - बाहरी चर बदल रहे हैं
  console.log(num);
}
func(); // फ़ंक्शन को कॉल करते हैं, 2 आउटपुट होगा

console.log(num); // 2 आउटपुट होगा - चर बदल गया

यहाँ दो स्थितियाँ हो सकती हैं: या तो हम वास्तव में वैश्विक चर बदलना चाहते थे (तब सब ठीक है), या हम let भूल गए और गलती से वैश्विक चर बदल दिया।

दूसरा मामला एक खोजने में कठिन त्रुटि है, जो स्क्रिप्ट के अप्रत्याशित व्यवहार की ओर ले जाती है। इसलिए हमेशा, एक नया चर प्रस्तुत करते समय इसे let के माध्यम से घोषित करें।

Задание 1

कोड चलाए बिना निर्धारित करें कि कंसोल में क्या आउटपुट होगा:

javascriptlet num = 1;

function func() {
  num = 2;
}
func();

console.log(num);
Задание 2

कोड चलाए बिना निर्धारित करें कि कंसोल में क्या आउटपुट होगा:

javascriptlet num = 1;

function func() {
  let num = 2;
}
func();

console.log(num);