`Var` या नहीं का उपयोग करना
आपको var
बयान के साथ किसी भी चर का परिचय देना चाहिए , अन्यथा यह वैश्विक दायरे में आता है।
यह ध्यान देने योग्य है कि सख्त मोड में ( "use strict";
) अघोषित चर असाइनमेंट फेंकता हैReferenceError
।
वर्तमान में जावास्क्रिप्ट में ब्लॉक स्कोप नहीं है। क्रॉकफोर्ड स्कूल आपको फ़ंक्शन बॉडी की शुरुआत में वेरिएंट स्टेटमेंट देना सिखाता है , जबकि डोज़ो की स्टाइल गाइड पढ़ती है कि सभी वेरिएबल्स को सबसे कम दायरे में घोषित किया जाना चाहिए । ( जावास्क्रिप्ट 1.7 में प्रस्तुत let
विवरण और परिभाषा ECMAScript मानक का हिस्सा नहीं है।)
स्थानीय चर के लिए नियमित रूप से उपयोग की जाने वाली वस्तुओं के गुणों को बांधने के लिए यह अच्छा अभ्यास है क्योंकि यह पूरी गुंजाइश श्रृंखला को देखने की तुलना में तेज है। ( चरम प्रदर्शन और कम मेमोरी खपत के लिए जावास्क्रिप्ट का अनुकूलन देखें ।)
फ़ाइल में चीजों को परिभाषित करना, या एक `(फ़ंक्शन () {...}) ()` में
यदि आपको अपने कोड के बाहर अपनी वस्तुओं तक पहुँचने की आवश्यकता नहीं है, तो आप अपने पूरे कोड को एक फंक्शन एक्सप्रेशन में लपेट सकते हैं — इसे मॉड्यूल पैटर्न कहते हैं। इसके प्रदर्शन लाभ हैं, और यह आपके कोड को उच्च स्तर पर खनन और अस्पष्ट करने की अनुमति देता है। आप यह भी सुनिश्चित कर सकते हैं कि यह वैश्विक नामस्थान को प्रदूषित नहीं करेगा। जावास्क्रिप्ट में रैपिंग फ़ंक्शंस भी आपको पहलू-उन्मुख व्यवहार को जोड़ने की अनुमति देता है। बेन चेरी का मॉड्यूल पैटर्न पर एक गहन लेख है ।
`यह` या नहीं का उपयोग करना
यदि आप जावास्क्रिप्ट में छद्म-शास्त्रीय विरासत का उपयोग करते हैं, तो आप शायद ही उपयोग करने से बच सकते हैं this
। यह स्वाद का मामला है जो आपके द्वारा उपयोग किए जाने वाले वंशानुक्रम पैटर्न का है। अन्य मामलों के लिए, जावास्क्रिप्ट विजेट्स पर "यह" के बिना पीटर माइकक्स के लेख की जांच करें ।
`Function myname ()` या `myname = function ();` का उपयोग करना
function myname()
एक फंक्शन डिक्लेरेशन है और myname = function();
वेरिएबल को असाइन किया गया फंक्शन एक्सप्रेशन है myname
। बाद का रूप इंगित करता है कि फ़ंक्शंस प्रथम श्रेणी के ऑब्जेक्ट हैं, और आप उनके साथ कुछ भी कर सकते हैं, जैसे कि एक चर के साथ। उनके बीच एकमात्र अंतर यह है कि सभी फ़ंक्शन घोषणाओं को दायरे के शीर्ष पर फहराया जाता है, जो कुछ मामलों में हो सकता है। अन्यथा वे समान हैं। function foo()
शॉर्टहैंड रूप है। उत्थापन के बारे में अधिक जानकारी जावास्क्रिप्ट स्कोपिंग और उत्थापन लेख में पाई जा सकती है ।
वस्तु के शरीर में परिभाषित करने के तरीके या "प्रोटोटाइप" का उपयोग करना
यह आप पर निर्भर करता है। जावास्क्रिप्ट में चार ऑब्जेक्ट-निर्माण पैटर्न हैं: छद्म-शास्त्रीय, प्रोटोटाइप, कार्यात्मक और भाग ( क्रॉकफ़ोर्ड, 2008 )। प्रत्येक के पास इसके पेशेवरों और विपक्ष हैं, क्रॉकफोर्ड को अपनी वीडियो वार्ता में देखें या अपनी पुस्तक द गुड पार्ट्स के रूप में पहले से ही सुझाए गए ।
फ़्रेमवर्क
मेरा सुझाव है कि आप कुछ जावास्क्रिप्ट फ्रेमवर्क चुनें, उनके सम्मेलनों और शैली का अध्ययन करें, और उन प्रथाओं और पैटर्नों को खोजें जो आपके लिए सबसे उपयुक्त हैं। उदाहरण के लिए, डोजो टूलकिट ऑब्जेक्ट-ओरिएंटेड जावास्क्रिप्ट कोड लिखने के लिए एक मजबूत ढांचा प्रदान करता है जो कि कई विरासत का समर्थन करता है।
पैटर्न्स
अंत में, सामान्य जावास्क्रिप्ट पैटर्न और विरोधी पैटर्न का पता लगाने के लिए समर्पित एक ब्लॉग है । यह भी देखें कि क्या जावास्क्रिप्ट के लिए कोई कोडिंग मानक हैं? स्टैक ओवरफ्लो में।