एक चर दोनों null
और undefined
दोनों एक ही समय में नहीं हो सकता है। हालांकि, अपने सवाल का सीधा जवाब है:
if (variable != null)
एक =
, नहीं दो।
"सार समानता तुलना एल्गोरिथ्म" जावास्क्रिप्ट कल्पना एक संकार्य null
किया जा रहा है और अन्य undefined
जा रहा है के मामले के लिए समर्पित में में दो विशेष खंड हैं, और परिणाम ==
के लिए true
और !=
के लिए false
है। इस प्रकार यदि चर का मान undefined
है, तो यह != null
नहीं है, और यदि यह शून्य नहीं है, तो यह स्पष्ट रूप से != null
नहीं है।
अब, एक पहचानकर्ता के मामले नहीं सभी पर, या तो एक var
या let
के रूप में, परिभाषित किया जा रहा एक समारोह पैरामीटर के रूप में, या के रूप में वैश्विक संदर्भ का एक गुण अलग है। ऐसे पहचानकर्ता के संदर्भ को रनटाइम पर एक त्रुटि के रूप में माना जाता है। आप संदर्भ का प्रयास कर सकते हैं और त्रुटि पकड़ सकते हैं:
var isDefined = false;
try {
(variable);
isDefined = true;
}
catch (x) {}
मैं व्यक्तिगत रूप से एक संदिग्ध अभ्यास पर विचार करता हूं।
var isJqueryAvailable = window.jQuery != null;
या
var isJqueryAvailable = "jQuery" in window;
: वैश्विक प्रतीक या वहाँ उपस्थिति या कुछ अन्य पुस्तकालय के अभाव, या कुछ इसी तरह की स्थिति के आधार पर किया जा सकता है हो सकता है कि के लिए, आप एक
window
संपत्ति (ब्राउज़र जावास्क्रिप्ट में) के लिए परीक्षण कर सकते हैं
यह बिल्कुल अपने कोड धीमा करता है, तो यह है कि क्या आप के बारे में चिंतित हैं है नहीं है। – Blazemonger
फ़ंक्शन का उपयोग करें: 'फ़ंक्शन isNullOrUndefined (variable) {return variable === null || चर === अपरिभाषित; } '। – VisioN
@VisioN यदि आप किसी फ़ंक्शन में एक अपरिभाषित चर को तर्क के रूप में पास करते हैं, तो आपको एक त्रुटि मिल जाएगी। – dqhendricks