2012-04-24 11 views

उत्तर

13

पाश बस जब तक ilength से भी कम है दोहराया जाएगा। यह बस मानता है i पहले ही कहीं और घोषित किया गया है।

असल में, for लूप निर्माण के भीतर सभी हिस्सों वैकल्पिक हैं।

​for(;;) window.alert('Are you sick of alerts yet?');​​​​​​​​​ 
+0

'के लिए (;;)' के लिए +1, जो मुझे पहले से महसूस किया गया था, यादों को वापस लाता है, जबकि (सत्य) 'अधिक सुगम था (किसी कारण से, मुझे' (;;) 'को कैनोलिक के रूप में पेश किया गया था एक अनंत लूप बनाने का तरीका) ... – Cameron

+0

हाँ, जावास्क्रिप्ट एक अनोखी भाषा है जिसमें हैकी-आश शॉर्टकट के इस प्रकार कुछ हद तक * प्रोत्साहित * तार पर बाइट्स को बचाने के लिए हैं। अन्यथा, 'जबकि (सत्य)' पढ़ने के लिए निश्चित रूप से आसान है। '!!' या '~~ 'के साथ कास्टिंग भी मजेदार है .. –

+0

हां, लेकिन मैं वास्तव में उस समय सी ++ सीख रहा था (पहली प्रोग्रामिंग भाषा), जावास्क्रिप्ट नहीं! ;-) – Cameron

9

यह एक नियमित रूप से for पाश कि कुछ भी नहीं आरंभीकरण चरण में बिल्कुल भी करता है: उदाहरण के लिए, यह एक पूरी तरह से वैध तरीका एक अंतहीन लूप बनाने के लिए है।

इस लेखन के बराबर है:

; 
while (i < length) { 
    // ... 
    i++; 
} 

को छोड़कर अगर वहाँ ... शरीर में एक continue, जिस स्थिति में for पाश से पहले i++ पर अमल करेंगे हालत पुनः आकलन करने, और while पाश नहीं होगा ।

+0

तो क्यों कोई इसे सरल 'जबकि' लूप पर लिखना पसंद करेगा? –

+0

@ nl-x: अच्छा बिंदु। यह अधिक कॉम्पैक्ट है, हालांकि थोड़ा कम पठनीय; हालांकि, यदि * इरादा * लूप के लिए सामान्य 'है, और वहां कोई प्रारंभिक चरण आवश्यक नहीं होता है, तो मुझे उस फ़ॉर्म का उपयोग करने में कुछ भी गलत नहीं लगता है। वास्तविक अंतर तब उत्पन्न होता है जब लूप बॉडी के भीतर 'जारी रखें' - 'फॉर्म' वृद्धि के लिए, लेकिन 'जबकि' फॉर्म नहीं है। मैंने इसका जवाब देने के लिए अपना जवाब संपादित कर लिया है, धन्यवाद। – Cameron

+0

क्षमा करें, मैं स्पष्ट रूप से नहीं देख रहा था। मैंने सोचा कि 'i ++' भाग भी छोड़ा गया था, उदाहरण के लिए '(; i

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