2016-08-19 9 views
12

मैं निम्नलिखित की तरह एक पाश है? या शायद spec में एक ग्रे क्षेत्र?सिंटैक्स त्रुटि:</p> <pre><code>const bar = {a: 1, b: 2} for (const k in bar) { //Throws in Firefox but not Chrome 54 console.log(k) } </code></pre> <p>यह एक बग है: स्थिरांक घोषणा में = लापता फ़ायरफ़ॉक्स 50

उत्तर

12

हां, यह फ़ायरफ़ॉक्स में एक बग प्रतीत होता है। spec allows the use of const:

IterationStatement: 
    for(ForDeclaration in Expression) Statement 

ForDeclaration: 
    LetOrConst ForBinding 

ForBinding: 
    BindingIdentifier 
    BindingPattern 

(छोटा कर दिया और सरलीकृत)

यह फ़ायरफ़ॉक्स गलत तरीके से एक के रूप में LexicalBinding व्याख्या करने के तरीके ForDeclaration लगता है।

संबंधित: ECMAScript 2015: const in for loops

यह इस समस्या के लिए बग रिपोर्ट की तरह लगता है: https://bugzilla.mozilla.org/show_bug.cgi?id=1101653


उचित let और const फ़ायरफ़ॉक्स लिए आ रहा है: https://twitter.com/evilpies/status/768881995912994816

+0

हुह, फायरफॉक्स वही गलती मैं जब कल्पना पढ़ने बना रही है। विशेष व्यवहार के लिए loops की जांच करने के लिए नहीं सोचा था। – ssube

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