2012-09-27 19 views
11

मैं कोडित निम्नलिखित:जेएसलिंट मुझे "typeof ... === 'अपरिभाषित' के बजाय" === अपरिभाषित "का उपयोग करने के लिए क्यों कहता है?

showTitles = (typeof showTitles !== 'undefined') ? showTitles : 'Y'; 
showSelectGroup = (typeof showSelectGroup !== 'undefined') ? showSelectGroup : 'Y'; 

लेकिन JSLint कह रहा है:

Warning 3 JS Lint: Unexpected 'typeof'. Use '===' to compare directly with undefined.

मैं अपने कोड बदलना चाहिए?

+2

मैं jslint बारे में कुछ पता नहीं है, लेकिन मुझे लगता है कि आप ऐसा करते हैं करने के लिए कह रहा है: '(showtitles === अपरिभाषित)'। – Travesty3

+1

यह संदेश में यह कहता है: 'अपरिभाषित' के साथ सीधे तुलना करने के लिए '===' का उपयोग करें। –

+0

'अप्रत्याशित' टाइपोफ़ 'समस्या है, न कि '! =='। – Blazemonger

उत्तर

6

नोट लिखते हैं कि सामान्य रूप में सबसे अच्छा अभ्यास बहस का मुद्दा है कि क्या यह है, लेकिन आप इसे JSLint के साथ काम करना चाहते हैं, तो आप इस

01 कर सकता है
showTitles = (showTitles !== undefined) ? showTitles : 'Y'; 
+0

तो मुझे टाइपफ़ की आवश्यकता नहीं है? –

+1

@Marilou यदि आप सख्त तुलना का उपयोग नहीं कर रहे हैं। ऐसा कहा जा रहा है कि, मैं उस पर शोध करने और यह तय करने के लिए प्रोत्साहित करता हूं कि आप अपने लिए इस तरह से सामान करना चाहते हैं और न केवल जेएसलिंट की "सलाह" का पालन करें। –

+0

नोड में मुझे मिलता है: "संदर्भ त्रुटि: शोटिटल्स परिभाषित नहीं किया गया है" –

8
शायद

showTitles = (showTitles === undefined) ? 'Y' : showTitles; 
showSelectGroup = (showSelectGroup === undefined) ? 'Y' : showSelectGroup; 

jslint का उपयोग करके

उस के साथ कोई समस्या नहीं (showTitles संभालने और showSelectGroup वर के साथ की घोषणा की जाती है)

हालांकि, मैं के रूप में

var showTitles = showTitles || 'Y'; 
var showSelectGroup = showSelectGroup || 'Y'; 
5

यह संदेश नवीनतम सर्वोत्तम प्रथाओं को दर्शाता है। ईएस 5 सख्त मोड के रूप में, undefinedcan no longer be changed का वैश्विक मूल्य और प्रत्यक्ष तुलना सरल कोड और तेज़ है। संक्षेप में, JSLint is aware of all this, और आपको अच्छी सलाह दे रहा है।

इस मामले में, showTitles === undefined करने के लिए typeof showTitles !== 'undefined' बदल जाते हैं।

संबंधित मुद्दे