2016-01-02 11 views
7

हम उदाहरण के लिए, for छोरों में let बयानों का उपयोग कर सकते कई चर असाइनमेंट के साथ, में करते हैं:साथ टेम्पोरल मृत क्षेत्र के लिए लूप

for (let x = 0, y = 0; x < 10; ++ x); 

हालांकि, हम कार्यान्वयन में विसंगतियों हो रही हम से एक चर का संदर्भ है, तो शुरू एक और; क्रोम में काम करने वाले कोड में निम्न परिणाम है, लेकिन फ़ायरफ़ॉक्स में एक ReferenceError:

for (let x = 0, y = x; x < 10; ++ x); 

Firefox के बाद पूरे अभिव्यक्ति पार्स किया गया है के तहत y को x आवंटित करने के लिए नहीं, क्रोम इसे तुरंत करता है जबकि लगता है। ध्यान दें कि दोनों ब्राउज़र में निम्नलिखित काम करता है (एक for ब्लॉक के बाहर उसी बयान):

let x = 0, y = x; // x = 0, y = 0 

यह अगर फायरफॉक्स के कार्यान्वयन सही नहीं है के रूप में (विशेष रूप से for ब्लॉक के बाहर मामले पर विचार के बाद) लगता है, लेकिन क्या करता है ईएस 6 विनिर्देश इस बारे में कहते हैं? क्या यह ऐसा कुछ है जिसे रिपोर्ट किया जाना चाहिए (या पहले से ही) की सूचना दी गई है?

उत्तर

1

फ़ायरफ़ॉक्स का let एक पुराना गैर मानक कार्यान्वयन है। देखने के लिए सबसे अच्छी जगह http://kangax.github.io/compat-table/es6/ है। मान लें कि आप फ़ायरफ़ॉक्स स्थिर (43) पर हैं, न कि वर्तमान में सूचीबद्ध यह ES6 let के लिए शून्य समर्थन है।

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