2010-06-14 10 views
72

मुझे पता है कि कुछ लोगों को सूचित करते हैं कि एक चर को "निजी" है कि इस तरह की गोपनीयता एक कल्पना है एक अग्रणी अंडरस्कोर की उपस्थिति पर विचार करें, और यह मान क्यों है जेएसलिंट एक त्रुटि संदेश के साथ ऐसे नामों की रिपोर्ट करता है।JSLint रिपोर्ट एक अंडरस्कोर में "अप्रत्याशित झूलने" चरित्र पहले से जुड़ा हुआ चर नाम

मैं एक वेब साइट मैं निर्माण कर रहा हूँ पर Google Analytics का उपयोग। मैं जीए के चर के संदर्भ में हूं, जैसे "_gaq।"

मैं (ताकि श्री Crockford के वकील के साथ जाना होगा मैं अपने कोडिंग शैली के बारे में धार्मिक नहीं हूँ, और) 100% JSLint साफ होने के लिए मेरी जे एस कोड प्राप्त करने की कोशिश कर रहा हूँ। उस ने कहा, मैं Google के चर नामों के बारे में कुछ नहीं कर सकता ... इसलिए, मुझे लगता है कि मुझे 100% "साफ" नहीं मिल सकता है।

मैं मामले मैं संदेश को गलत समझा गया है में यहाँ पोस्ट करें, और JSLint प्रक्रियाओं का अनुपालन करना कुछ कर सकते हैं।

+2

मुझे समझ में नहीं आता कि अंडरस्कोर खराब क्यों होना चाहिए। –

उत्तर

70

आह, मैं इस संभाला मिल गया है ... मैं बयान है कि अंडरस्कोर पहले से जुड़ा हुआ चर का उपयोग JSLint को निष्क्रिय करने के आदेश के साथ रैप, तो त्रुटि के इस वर्ग को पुन: सक्षम:

/*jslint nomen: true*/ 
... statement(s) with _var ... 
/*jslint nomen: false*/ 
+12

-1। इस चेतावनी को अक्षम करने के लिए आपको नाम सेट करने की आवश्यकता है: पहले सच में, फिर गलत। Jslint वेबसाइट से: "सत्य अगर शुरुआती या पीछे वाले अंडरबार के लिए नामों की जांच नहीं की जानी चाहिए।" –

+3

यह जेएसलिंट प्रथाओं का पालन नहीं करता है; यह उस चेतावनी की जांच अक्षम करता है। – WhyNotHugo

+2

यदि आप underscore.js जैसी लाइब्रेरी का उपयोग कर रहे हैं तो यह गन्दा हो जाएगा। इसके बजाय 'jslint --nomen ' का उपयोग करें। –

15

JSLint बस है एक कोड गुणवत्ता उपकरण। अपने परीक्षणों को पूरी तरह से पारित करने का मतलब यह नहीं है कि आपका कोड खराब है; इसका मतलब यह है कि आप अपने निर्माता द्वारा निर्धारित सभी सम्मेलनों का पालन नहीं करते हैं। हालांकि जेएसलिंट बहुत अच्छे सुझाव देता है, फिर भी उन सभी को पूरा करना हमेशा संभव नहीं होता है, खासकर जब किसी और की लाइब्रेरी का उपयोग करते हैं जिसका परीक्षण नहीं किया गया था। अर्थहीन मेटा-टिप्पणियों के साथ अपने स्रोत कोड को कूड़ेदान करने के बजाय, आपको अपने कोड को "पहचानकर्ताओं में लापरवाही _ को अस्वीकार करने" के साथ जांचना चाहिए, क्योंकि ऐसा लगता है कि आपके विशेष कोड के साथ उपयोग करना समझ में नहीं आता है।

+1

मैं आपके परिप्रेक्ष्य की सराहना करता हूं, और जेएसलिंट एक व्यक्ति की दृष्टि है, लेकिन मेरे पास कोड की मेरी लाइब्रेरी 100% साफ होने के लिए अच्छी तरह से काम करती है - जब मेरे पास बग होती है, तो वे हमेशा तर्क में रहते हैं। – Zhami

+1

मेरा मुख्य बिंदु यह है कि जेएसलिंट मेटा-टिप्पणियां पठनीयता को कम करती हैं और संभवतः एक और पाठक "हू" कहती हैं, इसलिए यह बेहतर होगा कि या तो उस विशेष जांच को अनदेखा या अक्षम कर दें ताकि उन्हें आपके स्रोत में रखा जा सके। –

+2

और अन्य कोड के बारे में क्या है जो अपमानजनक बाहरी पुस्तकालय पर निर्भर नहीं है? यह है कि * * jslint निर्देश के लिए हैं। यह एक निर्णय नहीं है जिसे आपको वैश्विक स्तर पर बनाना है। – 1983

51

इस संभाल करने के लिए सबसे अच्छा तरीका है बस (nomen) विकल्प "झूलते बर्दाश्त _ पहचानकर्ता में" सक्षम बनाना है। जानकारी के लिए http://www.jslint.com/lint.html देखें ...

+7

यह पूछे जाने वाले प्रश्न का सबसे अच्छा जवाब है। मेरी इच्छा है कि jslint underscorejs को सहन करेगा लेकिन _ पहचानकर्ता नहीं ... –

+0

क्या आप एक कामकाजी लिंक प्रदान कर सकते हैं? मैं किसी भी तरह से उलझन में संसाधनों को खोजने के लिए उलझन में हूँ। – OddDev

+2

http://jslint.it/lint.html आज़माएं – scruffian

8

मैं node.js. साथ JSLInt का उपयोग आप इस फीचर के आसपास पाने के लिए अज्ञात ध्वज पास कर सकते हैं

jslint --nomen myfile.js 
संबंधित मुद्दे