मैंने देखा कि जेएसलिंट के नए संस्करण को लूप के कुछ रूप पसंद नहीं हैं। मैंने पाया कि अजीब होना, और कुछ स्पष्टीकरण के लिए खोदना शुरू कर दिया। जेएसलिंट के help page के तहत, आप यह पा सकते हैं:जेएसलिंट के बारे में, लूप के लिए इसका नापसंद, और पूंछ कॉल अनुकूलन
ईएस 6 की सबसे महत्वपूर्ण नई सुविधा उचित पूंछ कॉल है। इसमें कोई नया वाक्यविन्यास नहीं है, इसलिए जेएसलिंट इसे नहीं देखता है। लेकिन यह रिकर्सन को और अधिक आकर्षक बनाता है, जो लूप बनाता है, खासकर लूप के लिए, बहुत कम आकर्षक।
और यह:
jsLint बयान के लिए के उपयोग की सलाह नहीं है। इसके बजाय प्रत्येक के लिए सरणी विधियों का उपयोग करें। विकल्प के लिए कुछ चेतावनियों को दबाएगा। नए जेएस 6 फॉर्म को छोड़कर, जेएसलिंट स्वीकार करने के लिए फॉर्म प्रतिबंधित हैं।
इन दोनों बयानों ने मुझे एक बाइट उलझन में छोड़ दिया। मैं हमेशा यह धारणा थी छोरों के लिए पाशन का सबसे अच्छा तरीका थे, जिसका मुख्य कारण:
- कुछ यात्रा तरीकों बहुत अच्छी तरह से अभी तक समर्थित नहीं हैं
- छोरों के लिए कम है अन्य यात्रा तरीकों से 'सुन'
मैंने कहीं भी पढ़ा है कि forEach
जैसे विधियों को अनुकूलित और साथ ही लूप के लिए अनुकूलित नहीं किया जा सकता है, हालांकि मुझे यकीन नहीं है कि मुझे विश्वास करना चाहिए या नहीं। (ECMAScript 5 में शायद सच?)
तो, अन्य यात्रा तरीकों के पक्ष में एक तर्क है कि वे अधिक पठनीय हैं, लेकिन, पूंछ कॉल अनुकूलन खेलने में आने के साथ, वे के रूप में तेजी से या शायद तेजी से एक से के लिए किया जा सकता है पाश?
मैं यहां मान रहा हूं कि, उदाहरण के लिए, प्रत्येक के लिए पूंछ-कॉल अनुकूलित किया जा सकता है, क्या यह सही है?
तो, मुख्य प्रश्न यह है: ईसीएमएस्क्रिप्ट 6 में लूप के अलावा पुनरावृत्ति विधियों के पक्ष में निर्णय लेने पर पूंछ कॉल अनुकूलन वास्तव में कैसे खेलता है?
और शायद यह भी इस: यह सही माना कि JSLInt अन्य यात्रा तरीकों बेहतर पसंद करती है क्योंकि वे अधिक पठनीय हैं, और क्योंकि, ECMAScript 6 में अनुकूलन के साथ, वे बस के रूप में तेजी से छोरों के लिए के रूप में किया जा सकता है ? क्या मैंने JSLint सहायता पृष्ठ पर कथन के ओवर की सही व्याख्या की है?
मुझे पता है कि प्रश्नों में केवल एक मुख्य प्रश्न होना चाहिए, और मेरे पास बहुत से लोग हैं; लेकिन, मैं उन्हें एक-दूसरे से बहुत संबंधित मानता हूं, और इसलिए मुझे लगता है कि उनमें से एक का जवाब शायद उन सभी का जवाब देता है।
धन्यवाद, और लंबी पोस्ट के लिए खेद है!
जेएसलिंट 'लूप्स' से बेहतर रिकर्सन पसंद करता है क्योंकि डगलस क्रॉकफोर्ड 'लूप्स' से बेहतर रिकर्सन पसंद करता है। तो इतना ही है। वह वास्तव में कार्यात्मक शैली में है। जो ठीक होगा अगर वह लगातार इस सामान को अन्य लोगों पर फेंक नहीं रहा था, हालांकि यह सिर्फ राय के बजाय तथ्य था। –
और क्या कोई विशेष कारण है कि उसे रिकर्सन बेहतर क्यों पसंद है? आह, आपके द्वारा अभी तक आपकी टिप्पणी में किए गए संपादन के आधार पर, हाहा नहीं है। –
वह कार्यात्मक प्रोग्रामिंग में है, जो लूप के लिए रिकर्सन का उपयोग करता है। वह जावास्क्रिप्ट का उपयोग नहीं करता है जैसे अधिकांश लोग जावास्क्रिप्ट का उपयोग करते हैं। (वह वास्तव में, वास्तव में अपनी खुद की भाषा लिखना चाहिए और इसे पारदर्शी बनाना चाहिए।) –