2012-11-28 13 views
26

क्या यह कोड अच्छा है?jQuery/जावास्क्रिप्ट कोड चेक, यदि अपरिभाषित नहीं है

var wlocation = $(this).closest('.myclass').find('li a').attr('href'); 
if (wlocation.prop !== undefined) { window.location = wlocation; } 

या मैं

var wlocation = $(this).closest('.myclass').find('li a').attr('href'); 
if (wlocation.prop !== "undefined") { window.location = wlocation; } 

उत्तर

65

मुझे यह पसंद जैसा आपने पोस्ट किया हो। यह होगा:

if (typeof wlocation !== "undefined") 
+1

wlocation सिर्फ एक स्ट्रिंग (href विशेषता के मान) है, इसलिए यह नहीं किसी भी प्रोप संपत्ति ... – Bruno

+0

धन्यवाद है, ठीक किया! – Diego

+0

बहुत बहुत धन्यवाद दोस्तों। – Jeremy

2

आप बस का उपयोग कर सकते करना चाहिए:

if (wlocation !== undefined) 

लेकिन यदि आपको दूसरा तरीका पसंद करते wouldn ':

var wlocation = $(this).closest('.myclass').find('li a').attr('href'); 
if (wlocation !== undefined) { window.location = wlocation; } 
10

मैं आम तौर पर आशुलिपि संस्करण पसंद:

if (!!wlocation) { window.location = wlocation; } 
+2

+1 वास्तव में अच्छा है, मुझे 'अपरिभाषित' के लिए '!!' कमांड नहीं पता था। –

+1

@MichelAyres '!!' एक विशेष * ऑपरेटर * या "अपरिभाषित नहीं है" ... यह मूल रूप से दो अन्य ऑपरेटरों को एक दूसरे के बाद नहीं है, उदाहरण के लिए; '!! अपरिभाषित => नहीं (अपरिभाषित नहीं) => नहीं (सत्य) => झूठा' – Christian

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