2013-07-10 9 views
7

CoffeeScript का यह टुकड़ा:कॉफीस्क्रिप्ट इस तरह से लूप को संकलित क्यों करता है?

for i in [1..10] 
    console.log i 

को संकलित किया गया है:

for (i = _i = 1; _i <= 10; i = ++_i) { 
    console.log(i); 
} 

मुझे समझ नहीं आता क्यों यह सिर्फ एक i उपयोग नहीं करता। कोई विचार?

उत्तर

11

मैं कॉफीस्क्रिप्ट से बहुत परिचित नहीं हूं, लेकिन मेरा अनुमान है कि यह लूप के भीतर i चर के संशोधन को रोकने के लिए है।

उदाहरण के लिए:

for i in [1..10] 
    console.log i 
    i = 7 

इस कोड

for (i = 1; i <= 10; ++i) { 
    console.log(i); 
    i = 7; 
} 

यह स्पष्ट रूप से एक अनंत लूप का उत्पादन का उत्पादन हो सकता है।

CoffeeScript के संस्करण है, तथापि, इसका मतलब होता है:

for (i = _i = 1; _i <= 10; i = ++_i) { 
    console.log(i); 
    i = 7; 
} 

पाश नहीं रह गया है _i की उपस्थिति पाश में स्थिति पर नज़र रखने के की वजह से अनंत है।

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