टीएल; ड्रिक टेकवे :
यदि आप स्वयं या टीम, JSLint के लिए बहुत उच्च स्तर की तलाश कर रहे हैं। लेकिन यह जरूरी नहीं है कि मानक, सिर्फ एक मानक, जिनमें से कुछ डॉग स्टॉर्कफोर्ड नामक एक जावास्क्रिप्ट भगवान से हमारे पास आता है। यदि आप थोड़ा अधिक लचीला होना चाहते हैं, या आपकी टीम पर कुछ पुराने मुकदमे हैं, जो JSLint की राय में नहीं खरीदते हैं, या एक नियमित आधार पर JS और अन्य C- पारिवारिक भाषाओं के बीच आगे और पीछे जा रहे हैं, तो JSHint आज़माएं।
लंबा संस्करण :
कांटे के पीछे तर्क बहुत अच्छी तरह से बताता है कि जेएसहिंट क्यों मौजूद है:
http://badassjs.com/post/3364925033/jshint-an-community-driven-fork-of-jslint http://anton.kovalyov.net/2011/02/20/why-i-funed-jslint-to -jshint /
इसलिए मुझे लगता है कि यह विचार है कि यह क्रॉकफोर्ड-चालित के बजाय "समुदाय-संचालित" है। व्यावहारिकता में, JSHint आम तौर पर कुछ शैलीगत और मामूली वाक्यविन्यास "राय" पर थोड़ा अधिक (या कम से कम विन्यास या अज्ञेयवादी) है कि JSLint पर एक स्टिकर है।
एक उदाहरण के रूप में, यदि आपको लगता है कि नीचे A और B दोनों ठीक हैं, या यदि आप A के एक या अधिक पहलुओं के साथ कोड लिखना चाहते हैं जो B में उपलब्ध नहीं हैं, तो JSHint आपके लिए है। अगर आपको लगता है कि B एकमात्र सही विकल्प है ... JSLint। मुझे यकीन है कि अन्य अंतर हैं, लेकिन यह कुछ पर प्रकाश डालता है।
A) JSHint को बॉक्स से बाहर निकालता है - JSLint को विफल करता है
(function() {
"use strict";
var x=0, y=2;
function add(val1, val2){
return val1 + val2;
}
var z;
for (var i=0; i<2; i++){
z = add(y, x+i);
}
})();
B) JSHint और JSLint दोनों को पास करता है
(function () {
"use strict";
var x = 0, y = 2, i, z;
function add(val1, val2) {
return val1 + val2;
}
for (i = 0; i < 2; i += 1) {
z = add(y, x + i);
}
}());
व्यक्तिगत रूप से मुझे JSLint कोड देखने में बहुत अच्छा लगता है, और इसके बारे में एकमात्र कठिन विशेषताएं जो मुझे असहमत हैं , एक फ़ंक्शन में और एक से अधिक लूप var i = 0
घोषणाओं के लिए इसकी घृणा है , और फ़ंक्शन घोषणाओं के लिए कुछ व्हॉट्सएप प्रवर्तन ।
व्हाट्सएप की कुछ चीजें जो JSLint को लागू करती हैं, मुझे जरूरी नहीं कि बुरी लगे, लेकिन परिवार में अन्य भाषाओं (C, जावा, पायथन, आदि) के लिए कुछ सुंदर मानक व्हाट्सएप सम्मेलनों के साथ सिंक से बाहर ... जो अक्सर होते हैं जावास्क्रिप्ट में सम्मेलनों के बाद भी। चूंकि मैं दिन भर इन विभिन्न भाषाओं में लिख रहा हूं, और टीम के सदस्यों के साथ काम करना, जो हमारे कोड में लिंट-स्टाइल व्हाट्सएप को पसंद नहीं करते हैं, मुझे जेएसहिंट एक अच्छा संतुलन लगता है। यह सामान को पकड़ता है जो एक वैध बग या वास्तव में खराब रूप है, लेकिन मुझ पर छाल नहीं करता है जैसे कि स्टाइलिस्ट राय या वाक्यगत नाइटपिक्स के लिए जेएसएलआईएन (कभी-कभी, मुझे अक्षम नहीं कर सकता है)।
बहुत सारे अच्छे पुस्तकालय लाइंटेबल नहीं होते हैं, जो मेरे लिए प्रदर्शित करता है कि इस विचार में कुछ सच्चाई है कि जेएसएलआईएनटी के कुछ बस "अच्छे कोड" के 1 संस्करण (जो वास्तव में, अच्छा कोड है) को आगे बढ़ाने के बारे में है। लेकिन फिर, एक ही पुस्तकालय (या अन्य अच्छे) शायद या तो संकेत नहीं कर रहे हैं, इसलिए, छू।
Combine this with the previous 'var' statement
->Do not mix 'require' and other declarations
, विरोधाभास।