2011-03-13 14 views
5

मैं सिर्फ मोज़िला साइट पर यह कोड में आए और है, जबकि मेरे लिए यह टूटा हुआ लग रहा है, तो संभवत: ऐसा मैं इसके उपयोग से परिचित नहीं हूँ:अर्धविराम "के लिए" की शुरुआत में कैसे काम करता है?

for (; k < len; k++) 
    { 
     if (k in t && t[k] === searchElement) 
     return k; 
    } 

कैसे पाश की शुरुआत में अर्धविराम काम करता है?

पूर्ण कोड here.

उत्तर

12

है पहले भाग प्रारंभिक अभिव्यक्ति कि चर प्रारंभ करने में प्रयोग किया जाता है (for construct देखें):

for ([initial-expression]; [condition]; [final-expression]) 
    statement 

कोष्ठक इस मामले कि यह वैकल्पिक है में मतलब । इसलिए यदि आपके पास प्रारंभ करने के लिए कोई चर नहीं है तो आपको किसी भी प्रारंभकर्ता अभिव्यक्ति को लिखने की आवश्यकता नहीं है। इस मामले में जहां kfor पाश से पहले आरंभ नहीं हो जाता में की तरह:

var k = n >= 0 
     ? n 
     : Math.max(len - Math.abs(n), 0); 

for (; k < len; k++) 
{ 
    if (k in t && t[k] === searchElement) 
    return k; 
} 

तुम भी रूप में प्रारंभिक अभिव्यक्ति हिस्सा यह लिख सकता है लेकिन यह है कि जो पढ़ने योग्य नहीं होगा:

for (var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); k < len; k++) 
{ 
    if (k in t && t[k] === searchElement) 
    return k; 
} 
+1

धन्यवाद, मुझे पता नहीं था चर वैकल्पिक थे यह अब यह इस तरह से देखकर समझ में आता है। – Stephen

1

यह मतलब है कि घोषणा और प्रारंभिक के चर कुछ ऊपरी है;

आप अनुभाग के लिए कुछ , तो आप सिर्फ डाल अर्धविराम छोड़ चाहते हैं, उदा .:

for (;;) { 
    //infinite loop 
} 
+0

असीमित, असीमित नहीं –

+0

सच - बहुत अधिक अंग्रेजी ग्रामा :) – smas

+0

@tomalak हाँ, मुझे मेरे गुरु सिखाओ – smas

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