मैं हाल ही में io.js के लिए बहुत सारे ES6 कोड लिख रहा हूं। वहाँ से सीखने के लिए जंगली में बहुत कोड नहीं है, इसलिए मुझे लगता है कि मैं अपने स्वयं के सम्मेलनों को परिभाषित कर रहा हूं क्योंकि मैं जाता हूं।
मेरा सवाल है कि कब constबनाम का उपयोग करना है let।
मैं इस नियम को लागू कर रहा हूं: यदि संभव हो तो उपयोग करें const। केवल तभी उपयोग करें letजब आप जानते हैं कि इसके मूल्य को बदलना आवश्यक है। (आप हमेशा वापस जा सकते हैं और एक को बदल सकते हैं constएक करने के लिए letअगर यह बाद में पता चला है कि आप अपने मूल्य को बदलने की जरूरत है।)
इस नियम का मुख्य कारण लगातार लागू करना आसान है। ग्रे क्षेत्र नहीं हैं।
बात यह है, जब मैं इस नियम को लागू करता हूं, तो व्यवहार में मेरी घोषणाओं में से 95% हैं const। और यह मुझे अजीब लगता है। मैं केवल एक लूप letजैसी चीजों के लिए उपयोग कर रहा हूं , या कभी-कभी संचित फाइबोनैचि योग जैसे चीजों के लिए (जो वास्तविक जीवन में बहुत ऊपर नहीं आता है)। मैं इससे हैरान था - यह पता चलता है कि मेरे ES5 कोड में 95% 'वैरिएबल्स' उन मूल्यों के लिए थे जो भिन्न नहीं होते हैं। लेकिन मेरे कोड को देखकर किसी भी तरह गलत लगता है।iforconst
तो मेरा सवाल है: क्या यह constइतना उपयोग करना ठीक है ? क्या मुझे वास्तव में चीजों को पसंद करना चाहिए const foo = function () {...};?
या मुझे constउन प्रकार की स्थितियों के लिए आरक्षित करना चाहिए जहां आप मॉड्यूल के शीर्ष पर एक शाब्दिक-कोडिंग कर रहे हैं - जिस तरह से आप पूर्ण कैप्स में करते हैं, जैसे const MARGIN_WIDTH = 410;?
function foo() {...}से बेहतर है<anything> foo = function() {...}
function foo() {...}डीबगिंग के समय मामूली भ्रम पैदा कर सकता है, उत्थापन के कारण। इसके अलावा, इसके अस्तित्व का मतलब है कि हमारे पास दो निर्माण हैं जो एक ही काम करते हैं लेकिन उनमें से एक केवल एक बहुत ही विशिष्ट संदर्भ में काम करता है। (आप एक अभिव्यक्ति अभिव्यक्ति का उपयोग कर सकते हैं कहीं भी एक अभिव्यक्ति मौजूद हो सकती है, लेकिन आप केवल बयान स्तर पर एक फ़ंक्शन घोषणा का उपयोग कर सकते हैं।) यदि आप संक्षिप्तता का पक्ष लेते हैं, तो समस्या बस यह हो सकती है कि फ़ंक्शन अभिव्यक्ति वाक्यविन्यास पूरे शब्द का उपयोग करता है function।
constइस का उपयोग करने के लिए ठीक है ।