SA-21/06, C-11, Asapur, Varanasi, UP support@kamaldnp.com +91 8318013442
JavaScript
1. JavaScript परिचय 2. JavaScript कहाँ लिखें 3. JavaScript आउटपुट 4. JavaScript सिंटैक्स 5. JavaScript कमेंट्स 6. JavaScript वेरिएबल्स 7. JavaScript ऑपरेटर्स 8. JavaScript डेटा टाइप्स 9. JavaScript फंक्शन्स 10. JavaScript ऑब्जेक्ट्स 11. JavaScript स्कोप 12. JavaScript इवेंट्स 13. JavaScript स्ट्रिंग्स 14. JavaScript नंबर्स 15. JavaScript ऐरे 16. JavaScript ऐरे मेथड्स 17. JavaScript तारीखें 18. JavaScript मैथ 19. JavaScript कंडीशन्स 20. JavaScript स्विच 21. JavaScript For Loop — गिनती वाला लूप 22. JavaScript While Loop — जब तक वाला लूप 23. JavaScript Type Conversion — एक type से दूसरा type 24. JavaScript Errors — try, catch, finally से error पकड़िए 25. JavaScript JSON — डेटा भेजने का तरीका 26. JavaScript Arrow Functions — छोटा रूप, बड़ा फर्क 27. JavaScript Classes — एक बार लिखिए, बार-बार बनाइए 28. JavaScript Promises और async/await — इंतज़ार का तरीका 29. JavaScript और DOM — पेज को पेड़ समझिए 30. JavaScript Form Validation — दरवाज़े पर जाँच
अंतिम टेस्ट — सर्टिफिकेट ₹10
इस कोड को लाइव चलाएँ
पाठ 11, कुल 30 में

JavaScript स्कोप

5 मिनट पढ़ें · मुफ़्त · बिना लॉगिन

स्कोप (Scope) एक ही सवाल का जवाब है: आपके कोड में variable कहाँ दिखता है? फ़ंक्शन के अंदर बनाया गया variable सिर्फ उसी फ़ंक्शन के अंदर इस्तेमाल हो सकता है। सभी फ़ंक्शन्स के बाहर बनाया गया variable कहीं भी इस्तेमाल हो सकता है। गाँव और घर की तरह सोचें: गाँव के चौक में कही गई बात (global) सबको पता होती है, लेकिन एक घर के अंदर कही गई बात (local) सिर्फ उस घर के लोगों को सुनाई देती है।

Diagram — देखें, यह सब कैसे जुड़ता है
Diagram: JavaScript स्कोप

स्कोप इसलिए ज़रूरी है क्योंकि यह आपके कोड को खुद से टकराने से रोकता है। दो फ़ंक्शन दोनों total नाम का variable इस्तेमाल कर सकते हैं, बिना टकराव के — जब तक हर total अपने फ़ंक्शन के अंदर local है। स्कोप के बिना हर नाम global होता, और बड़े प्रोग्राम में गलत overwrite से सब गड़बड़ हो जाता।

ग्लोबल स्कोप

किसी भी फ़ंक्शन के बाहर बनाया गया variable global होता है। हर फ़ंक्शन और पेज की हर script उसे पढ़ सकती है और बदल सकती है। Global सुविधाजनक होते हैं, लेकिन खतरनाक भी — आपके कोड का कोई भी हिस्सा उन्हें गलती से बदल सकता है, और फिर bug वहाँ से बहुत दूर जाकर दिखाई देता है जहाँ वह हुआ था। Professional कोड में जितना हो सके, उतने कम global इस्तेमाल होते हैं।

let chaiPrice = 10;  // global — हर फ़ंक्शन इसे देख सकता है
function chaiBill(cups) {
  return cups * chaiPrice;
}

लोकल स्कोप — फ़ंक्शन स्कोप

फ़ंक्शन के अंदर बनाया गया variable उस फ़ंक्शन के लिए local होता है। वह तब बनता है जब फ़ंक्शन चलता है, और जब फ़ंक्शन खत्म होता है तो वह मिट जाता है। फ़ंक्शन के बाहर से कोई उसे नहीं देख सकता — बाहर से उसे पढ़ने की कोशिश करने पर ReferenceError मिलता है।

function greet() {
  let message = "Namaste!";  // local — सिर्फ greet() इसे देख सकता है
  return message;
}
greet();
console.log(message);  // Error! यहाँ message defined नहीं है

यह कोई bug नहीं, एक सुविधा है। फ़ंक्शन के private variables उसकी अपनी कार्यशाला हैं। जब वह खत्म होता है, कार्यशाला साफ़ हो जाती है, और नाम दूसरे फ़ंक्शन्स के इस्तेमाल के लिए खाली हो जाते हैं।

Note: फ़ंक्शन global variables को पढ़ सकता है, लेकिन global, फ़ंक्शन के local variables को नहीं पढ़ सकता। देखना एक ही दिशा में होता है: अंदर की ओर। इसीलिए फ़ंक्शन सुरक्षित डिब्बे हैं — वे बाहर से चीज़ें ले सकते हैं, लेकिन बिना return के कुछ बाहर नहीं निकलता।

ब्लॉक स्कोप — let और const बनाम var

Block का मतलब है घुँघराले कोष्ठकों { } के बीच का कोड, जैसे if या loop का body। let या const से बनाए गए variables block-scoped होते हैं: वे सिर्फ उसी block के अंदर मौजूद रहते हैं। पुराने var से बनाए गए variables block को नज़रअंदाज़ करते हैं और पूरे फ़ंक्शन में दिखते हैं। यही एक बड़ी वजह है कि आधुनिक कोड var की जगह let और const को पसंद करता है।

if (true) {
  let a = 5;   // सिर्फ इस if-block के अंदर
  var b = 6;   // पूरे फ़ंक्शन में दिखता है
}
console.log(a);  // Error!
console.log(b);  // 6 — var block से बाहर निकल आया

Hoisting — एक छोटी चेतावनी

JavaScript कोड चलाने से पहले declarations को उनके scope के ऊपर ले जाता है — इसे hoisting कहते हैं। var वाला variable ऊपर उठाया जाता है और undefined से शुरू होता है, इसलिए उसे जल्दी इस्तेमाल करने पर error की जगह उलझाने वाला undefined मिलता है। let या const वाला variable भी ऊपर उठाया जाता है, लेकिन अपनी लाइन चलने तक वह "temporal dead zone" में रहता है — उसे जल्दी इस्तेमाल करने पर साफ़ error मिलता है। व्यावहारिक नियम आसान है: अपने variables को हमेशा उनके scope के ऊपर declare करें, और let और const को पसंद करें।

Tip: अगर पेज के दो हिस्सों को एक ही नाम चाहिए, तो हर हिस्से को अपने फ़ंक्शन के अंदर अपना local variable दें। और अगर कोई मान सच में साझा करना है, तो उसे global बनाने की जगह फ़ंक्शन parameter के रूप में पास करें। Parameters डेटा साझा करने का सबसे साफ़ तरीका हैं।

आम गलतियाँ

  • Local variable को फ़ंक्शन के बाहर पढ़ना और ReferenceError: message is not defined पाना।
  • if या loop के अंदर var इस्तेमाल करना और यह देखकर हैरान होना कि variable उसके बाद भी दिख रहा है।
  • गलती से global बना देना — let, const या var लिखे बिना total = 5 लिखना एक global बना देता है।
  • गलती से shadowing करना — global वाले नाम का local variable उस फ़ंक्शन के अंदर global को छिपा देता है।

याद रखें

  • Global scope: सभी फ़ंक्शन्स के बाहर declare किया गया, हर जगह दिखता है।
  • Local scope: फ़ंक्शन के अंदर declare किया गया, सिर्फ वहीं दिखता है।
  • let और const block-scoped होते हैं; var function-scoped होता है और block से बाहर निकल सकता है।
  • Global = पूरा गाँव जानता है; local = सिर्फ घर के अंदर।

उदाहरण समझिए

  • let chaiPrice = 10; — एक global variable, सभी फ़ंक्शन्स के बाहर declare किया गया। पेज के दोनों button इसे देख सकते हैं।
  • function showGlobal() { ... } — फ़ंक्शन के अंदर से global chaiPrice को पढ़ता है। यह काम करता है, क्योंकि फ़ंक्शन बाहर की ओर देख सकते हैं।
  • let message = "Only inside this function"; — showLocal() के अंदर एक local variable। यह सिर्फ तब तक मौजूद रहता है जब तक वह फ़ंक्शन चल रहा है।
  • document.getElementById("out").innerHTML = message; — यह लाइन फ़ंक्शन के अंदर है, इसलिए यह local variable को पढ़ सकती है। फ़ंक्शन के बाहर यही लाइन fail हो जाती।
  • var leaked = "I escaped the block"; — if block के अंदर var से declare किया गया, यह block खत्म होने के बाद भी दिखता है। उसी जगह let होता तो नहीं दिखता।

उदाहरण

Example
<!DOCTYPE html>
<html>
<head>
<title>Scope — Global vs Local</title>
<style>
body { font-family: Verdana, sans-serif; background-color: #fff8e1; }
h1 { color: #1e3a5f; }
.box { background-color: white; border: 2px solid #1e3a5f; padding: 14px; margin: 10px 0; width: 340px; }
button { background-color: #04aa6d; color: white; padding: 10px 18px; border: none; margin: 4px; }
</style>
</head>
<body>

<h1>Scope — Global vs Local</h1>
<div class="box">
<p>Global chai price: ₹10 (every function can see it)</p>
<p>Local message: only inside its function</p>
</div>
<button onclick="showGlobal()">Show Global Price</button>
<button onclick="showLocal()">Show Local Message</button>
<p id="out">Click a button to see what each scope can reach.</p>

<script>
let chaiPrice = 10;
function showGlobal() {
  document.getElementById("out").innerHTML = "Global price is ₹" + chaiPrice;
}
function showLocal() {
  let message = "Only inside this function";
  document.getElementById("out").innerHTML = message;
}
if (true) {
  var leaked = "I escaped the block";
}
</script>

</body>
</html>

परिणाम

परिणाम — ब्राउज़र में यह कैसा दिखता है
परिणाम: JavaScript स्कोप

खुद करके देखें — लाइव एडिटर

नीचे दिया गया कोड बदलें और चलाएँ दबाएँ — परिणाम तुरंत दिखेगा। कोई फाइल सहेजनी नहीं है, कोई लॉगिन नहीं चाहिए।

परिणाम

खुद क्यों सीखें — AI से पूछने के बजाय?

AI आपके लिए कोड लिख सकता है, लेकिन वह आपके लिए सोच नहीं सकता। जब आप HTML खुद सीखते हैं, तो आपका दिमाग असली कौशल बनाता है: आप समझते हैं कि पेज ऐसा क्यों दिखता है, टूटने पर उसे ठीक कर सकते हैं, और परीक्षा या इंटरव्यू में बिना मदद के जवाब दे सकते हैं। यही कौशल नौकरी दिलाता है — कॉपी किया हुआ जवाब नहीं।

सर्टिफिकेट पाएँ — सिर्फ ₹10

सभी 30 पाठ पूरे करें, टेस्ट पास करें (80%), ₹10 दें और अपना सर्टिफिकेट पाएँ।

टेस्ट दें

देखकर सीखना पसंद है? वीडियो कोर्स में वही विषय एक-एक करके सिखाए जाते हैं।

Go further with a full course

Free tutorials teach you the basics. Our paid courses add live projects, mentorship and a certificate.

WordPress Website Development Course (10 Days)
₹399
View
Summer Industrial Training in MERN Stack 2026
₹3,000
View
Ethical Hacking & Cyber Security Workshop
View
Browse all courses
JavaScript — Lessons
1. JavaScript परिचय 2. JavaScript कहाँ लिखें 3. JavaScript आउटपुट 4. JavaScript सिंटैक्स 5. JavaScript कमेंट्स 6. JavaScript वेरिएबल्स 7. JavaScript ऑपरेटर्स 8. JavaScript डेटा टाइप्स 9. JavaScript फंक्शन्स 10. JavaScript ऑब्जेक्ट्स 11. JavaScript स्कोप 12. JavaScript इवेंट्स 13. JavaScript स्ट्रिंग्स 14. JavaScript नंबर्स 15. JavaScript ऐरे 16. JavaScript ऐरे मेथड्स 17. JavaScript तारीखें 18. JavaScript मैथ 19. JavaScript कंडीशन्स 20. JavaScript स्विच 21. JavaScript For Loop — गिनती वाला लूप 22. JavaScript While Loop — जब तक वाला लूप 23. JavaScript Type Conversion — एक type से दूसरा type 24. JavaScript Errors — try, catch, finally से error पकड़िए 25. JavaScript JSON — डेटा भेजने का तरीका 26. JavaScript Arrow Functions — छोटा रूप, बड़ा फर्क 27. JavaScript Classes — एक बार लिखिए, बार-बार बनाइए 28. JavaScript Promises और async/await — इंतज़ार का तरीका 29. JavaScript और DOM — पेज को पेड़ समझिए 30. JavaScript Form Validation — दरवाज़े पर जाँच
अंतिम टेस्ट — सर्टिफिकेट ₹10

🤖 KAMALDNP AI Assistant

Ask about courses, website & more

Hi! I'm KAMALDNP AI Assistant. Ask me about our courses, website features, or anything else! 😊
Please wait 5s...
🛡️ 7-Day Money-Back Guarantee
🤖 KAMALDNP Assistant ✕

Request human callback:

🔐 Login Required
✕

Download karne ke liye login karo. Login ke baad yahi page pe rahoge!

Naya ho? Register karo →