ईएस 6 को बाबेल का मार्गदर्शक कहता है:
letनया हैvar।
जाहिरा तौर पर एकमात्र अंतर यह है कि varवर्तमान फ़ंक्शन केlet लिए स्कोप हो जाता है , जबकि वर्तमान ब्लॉक में स्कोप हो जाता है । इस उत्तर में कुछ अच्छे उदाहरण हैं ।
मैं varES6 कोड में उपयोग करने का कोई कारण नहीं देख सकता । यहां तक कि अगर आप किसी दिए गए चर को पूरे फ़ंक्शन में गुंजाइश करना चाहते हैं, तो आप letफ़ंक्शन ब्लॉक के शीर्ष पर घोषणा डालकर ऐसा कर सकते हैं , जो varकि वास्तविक गुंजाइश को इंगित करने के लिए वैसे भी आपके साथ होना चाहिए । और अगर आप किसी forब्लॉक या किसी चीज़ में कुछ और बारीक करना चाहते हैं , तो आप भी ऐसा कर सकते हैं।
इसलिए मेरी वृत्ति varES6 कोड लिखते समय पूरी तरह से उपयोग बंद करना है ।
मेरा सवाल यह है कि क्या मैं इस बारे में गलत हूं? क्या कोई वैध मामला है जहां varबेहतर होगा let?
letकिसी फ़ंक्शन के शीर्ष पर एक स्टेटमेंट डालते हैं , तो मुझे लगता है कि यह बिल्कुल स्पष्ट है कि आपने इसे पूरे फ़ंक्शन में स्कोप करने का इरादा किया है। मुझे नहीं लगता कि इसका उपयोग करने varसे यह शीर्ष पर पहुंचने के बजाय इसे और अधिक स्पष्ट कर देता है।
varअभी भी मौजूद है, पीछे-संगतता है। यदि यह उस के लिए नहीं थे, तो वे varपूरी तरह से हटा दिए गए थे, या letपहले स्थान पर कभी भी पेश नहीं किए गए थे, बजाय इसके varकि यह सब क्या होना चाहिए था के अर्थ को बदलकर ।
varमुझे पतले लगते हैं, और तीसरे प्रकार के चर के वारंट के लिए पर्याप्त नहीं है जो चारों ओर कूदता है। आप इसे letफंक्शन में सबसे ऊपर रखकर पूरे फंक्शन को स्कोप कर सकते हैं , जो कि varकिसी ब्लॉक में लिखने के इरादे से ज्यादा साफ होता है (ताकि उस ब्लॉक से बाहर फहराया जा सके ताकि आप ब्लॉक के बाहर इस्तेमाल कर सकें। - अजीब)। वह चेतावनी देते हैं कि यदि आप letकिसी फ़ंक्शन को स्कोप करते हैं तो "यह सिर्फ़ पोज़िशन है जो सिंटैक्स के बजाय अंतर को इंगित करता है", लेकिन मुझे लगता है कि यह एक अच्छी बात है।
var। जिन उदाहरणों को वह रखने के लिए प्रस्तुत करता है वे varआकस्मिक प्रतीत होते हैं - और गंभीर कोडिंग त्रुटियों पर आधारित हैं। यह एक त्रुटि में चलाने के लिए बेहतर है और भाषा के कार्यों का उपयोग करने के लिए ऐसी त्रुटियों को ठीक करने के लिए मजबूर किया जाना चाहिए जो किसी को इसके साथ दूर जाने दें! आगे क्या है, दुर्घटनाओं को रोकने के लिए एक कोशिश / पकड़ने में सब कुछ लपेटने की सलाह देते हैं? उस लिंक का बाकी हिस्सा अच्छा है लेकिन मैं उस विशेष भाग से बिल्कुल सहमत नहीं हूं।
varएक सचेत संकेतक के रूप में उपयोग करना है कि इस चर का उद्देश्य पूरे फ़ंक्शन के लिए स्कूप किया जाना एक उपयोगी "स्व-दस्तावेजीकरण" सम्मेलन हो सकता है ।