2016-11-18 9 views
5

DevTools कंसोल में किसी फ़ंक्शन के स्कोप का निरीक्षण करते समय मैंने एक "स्क्रिप्ट" स्कोप देखा। कुछ शोध के बाद यह let और const चर के लिए बनाया गया प्रतीत होता है।स्क्रिप्ट स्कोप का उद्देश्य क्या है?

बिना const या let चर एक स्क्रिप्ट में एक समारोह का स्कोप:

एक let चर के साथ एक स्क्रिप्ट में एक समारोह के

the global scope

कार्यक्षेत्र:

a global scope and a script scope

फिर भी निम्नलिखित कंसोल में 1 प्रिंट करता है - स्क्रिप्ट स्कोप में चर को अभी भी अन्य स्क्रिप से एक्सेस किया जा सकता है टीएस:

<script>let v = 1</script> 
<script>console.log(v)</script> 

मैंने ES6 मॉड्यूल के बारे में सुना है जिसमें शीर्ष-स्तर चर मॉड्यूल के बाहर से पहुंच योग्य नहीं होंगे। क्या यह गुंजाइश का उपयोग किया जाता है या इसका कोई और उद्देश्य है?

उत्तर

6

जब आप एक चर शीर्ष स्तर पर var का उपयोग कर (अर्थात एक समारोह के अंदर नहीं), यह स्वतः ही एक वैश्विक चर हो जाता है की घोषणा (ताकि ब्राउज़र में आप इसे window की एक संपत्ति के रूप में उपयोग कर सकते हैं)। यह let और const का उपयोग करके घोषित चर के साथ अलग है-वे वैश्विक चर नहीं बनते हैं। आप उन्हें किसी अन्य स्क्रिप्ट टैग में एक्सेस कर सकते हैं, लेकिन आप उन्हें window के गुणों के रूप में एक्सेस नहीं कर सकते हैं।

<script> 
 
    var test1 = 42; 
 
    let test2 = 43; 
 
</script> 
 
<script> 
 
    console.log(test1); // 42 
 
    console.log(window.test1); // 42 
 
    console.log(test2); // 43 
 
    console.log(window.test2); // undefined 
 
</script>

:

इस उदाहरण देखें

संबंधित मुद्दे