2017-05-31 18 views
6

में काम नहीं करता है मैं एज/15.15063 चला रहा हूं। 'Can I Use' says const should work.कॉन्स एज 15 डेवलपर टूल

रनिंग:

const x = 'woo' 

तब:

console.log(x) 

रिटर्न

'x' is undefined 

स्क्रीनशॉट:

enter image description here

क्यों काम नहीं कर रहा है?

+1

यदि आप इसे लपेटते हैं तो यह काम करता है '(function() {const x =' woo '; console.log (x);})(); '? –

+0

क्या होगा यदि आप इसे कोड ब्लॉक में डाल दें? '{const x = 'woo'; console.log (x); } '? – evolutionxbox

+0

@jared: लपेटते समय काम करता है – mikemaccana

उत्तर

2

मुझे संदेह है कि एज कंसोल like other implementations did के कवर के तहत with कथन का उपयोग कर रहा है। यह var और even function declarations वैश्विक क्षेत्र में बाहर फहराया जा रहा है, लेकिन let की व्याख्या करता है और const ब्लॉक गुंजाइश में लॉक कर दिया जाएगा:

with (…) { 
    const x = 'woo' 
} 
// next input: 
with (…) { 
    console.log(x) // obviously undeclared 
} 

, बहु मोड में उन्हें प्रवेश करने के लिए एक एकल मूल्यांकन में प्रयास करें - वहाँ वे काम करना चाहिए ।

लेकिन आप भी एक बग फाइल करना चाहेंगे, क्योंकि कंसोल वास्तव में महसूस करता है जैसे वैश्विक दायरे में चीजों का मूल्यांकन करना।

+1

उस उत्तर पर आखिरी टिप्पणी जो आपने बहुत अधिक से जुड़ी है, यह सब कुछ कहती है: "कुछ हफ्ते पहले हमने ब्लॉक में क्रोम में हमारे कंसोल कार्यान्वयन को ब्लॉक के साथ कुछ प्रतीक जादू में ले जाया क्योंकि ब्लॉक ने कुछ ईएस 6 को अवरुद्ध कर दिया था विशेषताएं :) " –

+0

@ जेरेस्मिथ हा, बिल्कुल सही! इसे पढ़ने के लिए परेशान नहीं था, मैं बस कुछ भी लिंक करना चाहता था जो कार्यान्वयन दृष्टिकोण दिखाता है। – Bergi

1

मुझे लगता है कि मैंने इसे समझ लिया है, लेकिन यह एक उत्तर के रूप में अनुमान है। हालांकि एक टिप्पणी के लिए बहुत लंबा है।

मैं लगता क्या हो रहा है कि const और letdo not create निहित वैश्विक जब उसी तरह var करता है में शीर्ष स्तर के दायरे में इस्तेमाल किया है। हालांकि const और let के साथ बनाए गए शीर्ष-स्तरीय चर वैश्विक हैं, लेकिन वे वैश्विक window ऑब्जेक्ट के गुण नहीं हैं।

एमएस सांत्वना console में बनाए गए चर तक पहुँचने के लिए है कि निहित window संपत्ति सृजन पर भरोसा है, तो const और let काम नहीं करेगा।

मैं क्रोम देव उपकरण की अंदरूनी कामकाज को लेकर अनिश्चित हूं, लेकिन यह सांत्वना में मार डाला कोड के लिए एक गुमनाम समारोह आवरण बनाने के लिए लगता है: गुमनाम पर 1 Uncaught त्रुटि :

throw new Error; 

VM679: 1: 7

(function() { throw new Error; })(); 

VM759: एक पर 1 Uncaught त्रुटि nonymous: 1: 21 गुमनाम पर: 1: 33

मैं अनिश्चित अगर वहाँ अन्य सैंडबॉक्सिंग यहाँ पर जा रहा है, मैं जरूरी उस पर प्रलेखन का एक बहुत नहीं मिला हूं।

+0

"* यदि एमएस कंसोल चरम पर पहुंचने के लिए उस अंतर्निहित विंडो संपत्ति निर्माण पर निर्भर है *" - यह क्यों होगा? – Bergi

+0

@ बर्गि आईडीके यह मुझे भी गूंगा लगता है। जैसा कि मैंने कहा, अटकलें, लेकिन एक टिप्पणी के लिए बहुत लंबा है। –

+0

मैंने अपनी खुद की अटकलें अब पोस्ट की :-) – Bergi

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