पारंपरिक वर-घोषित चर, जो पूरे संलग्नित से जुड़े होते हैं, के विपरीत उन्हें प्रदर्शित करने की परवाह किए बिना दायरे में कार्य - let
घोषणाओं ब्लॉक गुंजाइश के लिए देते हैं लेकिन आरंभ नहीं कर रहे हैं, जब तक वे ब्लॉकमैं कैसे जांच सकता हूं कि ES6 पर `let` चर घोषित किया गया है या नहीं?
तो में दिखाई देते हैं:
console.log(a); // undefined
console.log(b); // ReferenceError!
var a;
let b;
तो ऐसा लगता है कि hoisting यहां लागू नहीं है।
प्रश्न
यदि हां, तो कैसे मैं सुरक्षित रूप से जांच कर सकते हैं चर घोषित किया गया है?
एनबी - जो विकल्प मैं देखता हूं वह कोशिश/पकड़ लेता है और निश्चित रूप से हमेशा let
चर को दायरे में डाल देता है। लेकिन फिर भी मेरा प्रश्न
आप यह जांच नहीं सकते कि कोई चर (या तो 'let' या 'var') घोषित किया गया है या नहीं। आप केवल यह जांच सकते हैं कि उन्हें परिभाषित किया गया है या नहीं। आप वैसे भी ऐसा करने की कोशिश क्यों कर रहे हैं? आपका उपयोग केस क्या है? –
@AaditMShah मामला सीख रहा है। var के साथ मैं कर सकता था: 'अगर (एक ===' अपरिभाषित 'टाइप करें) ' –
मेरी टिप्पणी संपादित की।आप क्या कर रहे हैं यह जांच कर रहा है कि चर परिभाषित किया गया है या नहीं। आप यह जांच नहीं रहे हैं कि इसे घोषित किया गया है या नहीं। –