2014-09-25 3 views
8

myvar जावास्क्रिप्ट variable === false या नहीं (यह भी अपरिभाषित हो सकता है) जांचने का सबसे अच्छा तरीका क्या है।जांचें कि क्या चर गलत है और न तो सत्य या अपरिभाषित

if (myvar === false) 

ठीक होगा लेकिन myvar इसे अपरिभाषित किया जा सकता है। केवल false मान स्वीकार्य है, अपरिभाषित नहीं है।

if (typeof myvar !== "undefined" && myvar === false) से कम कोई छोटा?

+0

* केवल * 'FALSE' या' undefined', या आप बस किसी भी "falsy" मूल्य के लिए देख रहे हैं, जो सिर्फ 'अगर (myVar) होगा ...'? – adeneo

+0

आपको क्या ठीक काम करना चाहिए, या यदि आप वास्तव में स्पष्ट होना चाहते हैं तो 'if ((myvar === false) && (myvar! == अपरिभाषित)) {' – PlantTheIdea

उत्तर

17

चर है तो की घोषणा की:

if (myvar === false) { 

ठीक काम करेंगे। ===false को अनिर्धारित नहीं माना जाएगा।

यदि यह undefinedऔर अघोषित तो आप इसका इस्तेमाल करने के प्रयास करने से पहले अपने प्रकार की जाँच करनी चाहिए है (अन्यथा आप एक संदर्भ त्रुटि प्राप्त होगी)।

if(typeof myvar === 'boolean' && myvar === false) { 

यह कहा गया है कि आपको यह सुनिश्चित करना चाहिए कि यदि आप इसे उपयोग करने का प्रयास करने की योजना बनाते हैं तो चर हमेशा घोषित किया जाता है।

var myvar; 
// ... 
// some code that may or may not assign a value to myvar 
// ... 
if (myvar === false) { 
1

कैसे if (myvar !== undefined && myvar === false)?

+0

'अपरिभाषित' कुछ अन्य मानों को फिर से परिभाषित किया जा सकता है, इसलिए आपको हमेशा 'टाइपोफ़' का उपयोग करना चाहिए या स्थानीय 'अपरिभाषित' परिभाषित करना चाहिए। –

+0

@Derek 朕 會 功夫 अब आधुनिक ब्राउज़र में नहीं। –

+0

@ IngoBürk - इंटरनेट पर अधिकांश उपयोगकर्ताओं के पास आधुनिक ब्राउज़र नहीं हैं, खासकर वाणिज्यिक वातावरण में कंप्यूटर। –

1
if(typeof myvar === 'boolean' && !myvar) 
संबंधित मुद्दे