javascript - examples - जावास्क्रिप्ट ऑपरेटरों




जावास्क्रिप्ट में एक परिभाषित चर की जांच कैसे करें (8)

मैं जांचना चाहता था कि चर परिभाषित किया गया है या नहीं। उदाहरण के लिए, निम्नलिखित एक परिभाषित त्रुटि फेंकता है

alert( x );

मैं इस त्रुटि को कैसे पकड़ सकता हूं?


आप टर्नरी सशर्त-ऑपरेटर का भी उपयोग कर सकते हैं:

var a = "hallo world";
var a = !a ? document.write("i dont know 'a'") : document.write("a = " + a);

//var a = "hallo world";
var a = !a ? document.write("i dont know 'a'") : document.write("a = " + a);


एक अन्य संभावित "समाधान" window ऑब्जेक्ट का उपयोग करना है। जब ब्राउज़र में संदर्भ त्रुटि समस्या से बचा जाता है।

if (window.x) {
    alert('x exists and is truthy');
} else {
    alert('x does not exist, or exists and is falsy');
}

जावास्क्रिप्ट में, null एक वस्तु है। ऐसी चीजों के लिए एक और मूल्य है जो मौजूद नहीं हैं, undefined । डीओएम लगभग सभी मामलों के लिए null देता है जहां यह दस्तावेज़ में कुछ संरचना खोजने में विफल रहता है, लेकिन जावास्क्रिप्ट में स्वयं undefined मूल्य का उपयोग किया जाता है।

दूसरा, नहीं, प्रत्यक्ष समकक्ष नहीं है। यदि आप वास्तव में विशेष रूप से null लिए जांचना चाहते हैं, तो करें:

if (yourvar === null) // Does not execute if yourvar is `undefined`

यदि आप यह जांचना चाहते हैं कि कोई चर मौजूद है या नहीं, तो इसे केवल try / catch साथ किया जा सकता है, क्योंकि typeof एक अविकसित चर का इलाज करेगा और एक वैरिएबल को समकक्ष के मान के साथ घोषित किया जाएगा।

लेकिन, यह जांचने के लिए कि कोई चर घोषित किया गया है और undefined नहीं है:

if (typeof yourvar !== 'undefined') // Any scope

यदि आप जानते हैं कि चर मौजूद है, और यह जांचना चाहते हैं कि इसमें कोई मूल्य संग्रहीत है या नहीं:

if (yourvar !== undefined)

यदि आप जानना चाहते हैं कि कोई सदस्य स्वतंत्र है या नहीं, लेकिन इसकी परवाह नहीं है कि इसका मूल्य क्या है:

if ('membername' in object) // With inheritance
if (object.hasOwnProperty('membername')) // Without inheritance

यदि आप जानना चाहते हैं कि एक चर truthy :

if (yourvar)

Source


तकनीकी रूप से, उचित समाधान है (मुझे विश्वास है):

typeof x === "undefined"

आप कभी-कभी आलसी हो सकते हैं और उपयोग कर सकते हैं

x == null

लेकिन यह एक अनिर्धारित परिवर्तनीय एक्स, और एक परिवर्तनीय एक्स दोनों को शून्य लौटने की अनुमति देता है, सत्य लौटने के लिए।


मैं अक्सर सबसे सरल तरीका का उपयोग करता हूं:

var variable;
if (variable === undefined){
    console.log('Variable is undefined');
} else {
    console.log('Variable is defined');
}

संपादित करें:

परिवर्तनीय प्रारंभ किए बिना, अपवाद फेंक दिया जाएगा "अनकही संदर्भ त्रुटि: परिवर्तनीय परिभाषित नहीं किया गया है ..."


मैंने अक्सर किया है:

function doSomething(variable)
{
    var undef;

    if(variable === undef)
    {
         alert('Hey moron, define this bad boy.');
    }
}

स्वीकृत उत्तर सही है। बस एक और विकल्प जोड़ना चाहता था। आप इस स्थिति को संभालने के लिए try ... catch ब्लॉक का भी उपयोग कर सकते हैं। एक अजीब उदाहरण:

var a;
try {
    a = b + 1;  // throws ReferenceError if b is not defined
} 
catch (e) {
    a = 1;      // apply some default behavior in case of error
}
finally {
    a = a || 0; // normalize the result in any case
}

catch ब्लॉक से अवगत रहें, जो थोड़ा गन्दा है, क्योंकि यह ब्लॉक-स्तरीय दायरा बनाता है। और, ज़ाहिर है, उदाहरण पूछा गया प्रश्न का उत्तर देने के लिए अत्यंत सरल है, इसमें त्रुटि प्रबंधन में सर्वोत्तम प्रथाओं को शामिल नहीं किया गया है;)।


हम निम्नानुसार undefined जांच सकते हैं

var x; 

if (x === undefined) {
    alert("x is undefined");
} else {
     alert("x is defined");
}





undefined