यह कुछ हद तक this question से संबंधित है, लेकिन मैं जावास्क्रिप्ट में सर्वोत्तम प्रथाओं के बारे में संसाधन नहीं मांग रहा हूं, लेकिन आपकी वास्तविक सलाह है।जावास्क्रिप्ट बेस्ट प्रैक्टिस
मैं अपनी खुद की सूची से शुरू करूंगा। यदि आप सुनिश्चित हैं कि सलाह विवादास्पद नहीं है तो आप या तो कोई जवाब पोस्ट कर सकते हैं या सीधे सवाल संपादित कर सकते हैं।
ये हम चले:
- हमेशा उपयोग
var
- निर्माता कार्यों के नाम भुनाने - तुलना के लिए और कुछ नहीं
- उपयोग
===
पुरातन, उदा - उपयोग स्पष्ट डाले
Number()
,String()
, के लिए के साथtypeof
- साथ
instanceof
जांच वस्तु प्रकार के लिए चेक आदिम प्रकार के लिए
Boolean()
- जांच
Object.prototype.toString()
साथ निर्मित वस्तु प्रकार पार फ्रेम मुद्दों, जैसे से बचने के लिए कंस्ट्रक्टर्स मेंObject.prototype.toString.call(obj) === '[object Array]'
जांच
this
, उदाfunction MyObject() { if(!(this instanceof arguments.callee)) throw new Error('constructor called with invalid `this`'); // [...] }
नेमस्पेसिंग लिए, उदाहरण के लिए वैश्विक गुंजाइश नहीं अपवित्र के लिए उपयोग अनाम प्रक्रियाएं
for..in
छोरों में(function() { var noGlobalVar = 'foo'; // [...] })();
जांच
साथ गड़बड़ एकhasOwnProperty()
- यह न मानें कि कोई प्रोटोटाइपfor..in
छोरों का उपयोग नहीं करते सरणियों या सरणी की तरह वस्तुओं
मेरी सोच स्पष्ट रूप से स्पष्ट करना था, उदाहरण के लिए 'ए = 3 + दस्तावेज़ .forms [0] .elemens [0] .value' जैसी चीजें न करें, लेकिन 'ए = 3 + संख्या (दस्तावेज़ .forms [ 0] [0] .Value) .elemens '; ध्यान दें कि मैं ** ** नहीं हूं ** रैपर ऑब्जेक्ट्स ('नई संख्या() ',' नई स्ट्रिंग()', ...) – Christoph
का उपयोग करने की सलाह देना आपको तब तक ऐसा करने की आवश्यकता नहीं है जब तक कि आप मान को शामिल न करें 'फू' जैसी स्ट्रिंग। जो किसी भी तरह से असफल हो जाएगा। – scunliffe
@scunliffe: '3 + 'foo' === '3foo'', जबकि '3 + संख्या ('foo') === NaN' – Christoph