ओपी के अनुरोध के अनुसार मैं चिप लगाऊंगा (बिना खुद को बेवकूफ बनाए, उम्मीद है: पी)
मुझे लगता है कि हम सभी सहमत हैं कि पुनरावृत्ति कोडिंग का एक और अधिक सुंदर तरीका है। यदि अच्छी तरह से किया जाता है तो यह अधिक बनाए रखने योग्य कोड के लिए बना सकता है, जो कि IMHO है जैसा कि महत्वपूर्ण (यदि अधिक नहीं) है जो 0.0001ms से शेविंग करता है।
जहाँ तक जेएस टेल-कॉल ऑप्टिमाइज़ेशन नहीं करने वाले तर्क का सवाल है: यह पूरी तरह से सच नहीं है, ECMA5 के सख्त मोड का उपयोग करने से एससीओ सक्षम होता है। यह कुछ समय पहले मैं बहुत खुश नहीं था, लेकिन कम से कम अब मुझे पता है कि arguments.callee
सख्त मोड में त्रुटियों को क्यों फेंकता है। मुझे एक बग रिपोर्ट के लिंक के ऊपर लिंक पता है, लेकिन बग WONTFIX पर सेट है। इसके अलावा, मानक TCO आ रहा है: ECMA6 (दिसंबर 2013)।
सहज, और जेएस की कार्यात्मक प्रकृति से चिपके हुए, मैं कहूंगा कि पुनरावृत्ति समय की 99.99% अधिक कुशल कोडिंग शैली है। हालांकि, फ्लोरियन मार्गाइन के पास एक बिंदु है जब वह कहते हैं कि अड़चन कहीं और पाए जाने की संभावना है। यदि आप DOM में हेरफेर कर रहे हैं, तो आप संभवतः अपने कोड को यथासंभव लिखने योग्य बना सकते हैं। DOM API वह है जो: धीमा है।
मुझे लगता है कि यह एक निश्चित जवाब देने के लिए असंभव है जिस पर तेज विकल्प है। हाल ही में, बहुत सारे jspref के शो मैंने देखे हैं कि क्रोम का V8 इंजन कुछ कार्यों में हास्यास्पद रूप से तेज है, जो एफएफ के स्पाइडरमोंकी पर 4x धीमा चलाते हैं और इसके विपरीत। आधुनिक जेएस इंजन में आपके कोड को अनुकूलित करने के लिए अपनी आस्तीन के सभी प्रकार हैं। मैं कोई विशेषज्ञ नहीं हूं, लेकिन मुझे लगता है कि V8, उदाहरण के लिए, क्लोजर (और पुनरावृत्ति) के लिए अत्यधिक अनुकूलित है, जबकि एमएस का JScript इंजन नहीं है। स्पाइडरमोंकी अक्सर डोम के शामिल होने पर बेहतर प्रदर्शन करती है ...
संक्षेप में: मैं कहूंगा कि कौन सी तकनीक अधिक प्रदर्शनकारी होगी, जैसा कि जेएस में हमेशा होता है, भविष्यवाणी करना असंभव है।