javascript - जावास्क्रिप्ट चेक अगर चर मौजूद है (परिभाषित / आरम्भिक)


जाँचने की कौन सी विधि है कि कोई चर आरंभिक रूप से शुरू किया गया है, तो क्या यह सही है / सही है? (मानते हुए कि चर कुछ भी धारण कर सकता है (स्ट्रिंग, इंट, ऑब्जेक्ट, फंक्शन, इत्यादि))

if (elem) { // or !elem

या

if (typeof(elem) !== 'undefined') {

या

if (elem != null) {



Answers


आप ऑपरेटर के typeof चाहते हैं। विशेष रूप से:

if (typeof variable !== 'undefined') {
    // the variable is defined
}



typeof ऑपरेटर की जांच करेगी कि चर वास्तव में अनिर्धारित है या नहीं।

if (typeof variable === 'undefined') {
    // variable is undefined
}

ऑपरेटर के प्रकार, अन्य ऑपरेटरों के विपरीत, एक संदर्भएर्रर अपवाद नहीं फेंकता है जब एक अघोषित चर के साथ प्रयोग किया जाता है

हालांकि, ध्यान रखें कि typeof null "object" वापस आएगा हमें एक चर को null करने की गलती से बचने के लिए सावधान रहना होगा। सुरक्षित होने के लिए, यह इसके बदले हम इसका इस्तेमाल कर सकते हैं:

if (typeof variable === 'undefined' || variable === null) {
    // variable is undefined or null
}

सरल समानता == बजाय सख्त तुलना === का उपयोग करने के बारे में अधिक जानकारी के लिए, देखें:
जो ऑपरेटर के बराबर है (== बनाम ===) का उपयोग जावास्क्रिप्ट तुलना में किया जाना चाहिए?




जावास्क्रिप्ट में, एक चर परिभाषित किया जा सकता है, लेकिन मान को undefined पकड़ कर रखें, इसलिए सबसे सामान्य जवाब तकनीकी रूप से सही नहीं है, और इसके बजाय निम्नलिखित कार्य करता है:

if (typeof v === "undefined") {
   // no variable "v" is defined in the current scope
   // *or* some variable v exists and has been assigned the value undefined
} else {
   // some variable (global or local) "v" is defined in the current scope
   // *and* it contains a value other than undefined
}

यह आपके उद्देश्यों के लिए पर्याप्त हो सकता है निम्नलिखित टेस्ट में सरल शब्दार्थ हैं, जो आपके कोड के व्यवहार को ठीक से बताते हुए और इसे स्वयं समझने के लिए आसान बनाता है (यदि आप ऐसी चीजों के बारे में ध्यान रखते हैं):

if ("v" in window) {
   // global variable v is defined
} else {
   // global variable v is not defined
}

यह निश्चित रूप से मानता है कि आप एक ब्राउज़र में चल रहे हैं (जहां window वैश्विक ऑब्जेक्ट के लिए एक नाम है)। लेकिन अगर आप इस तरह के ग्लोबल्स के साथ घूम रहे हैं तो शायद आप एक ब्राउज़र में हैं विशेष रूप से, 'name' in window का इस्तेमाल करते हुए globals को संदर्भित करने के लिए window.name का उपयोग कर स्टाइलिस्टिक रूप से संगत है। ग्लोबल को window गुणों के रूप में एक्सेस करने के बजाय चर के रूप में आप अपने कोड (लिनिंग के लाभ के लिए) में उल्लिखित अवांछित चर की संख्या को कम करने की अनुमति देते हैं, और स्थानीय वैश्विक द्वारा छायांकित होने की संभावना को टालते हैं। इसके अलावा, यदि आपकी त्वचा को क्रॉल करते हैं, तो आप इन अपेक्षाकृत लंबी छड़ी के साथ उन्हें अधिक सहज महसूस कर सकते हैं




अधिकांश मामलों में आप उपयोग करेंगे:

elem != null

सरल if (elem) विपरीत, यह 0 , false , NaN और '' अनुमति देता है, लेकिन इसे null या undefined अस्वीकार कर देता है, जिससे यह एक तर्क की उपस्थिति, या किसी वस्तु की संपत्ति के लिए एक अच्छा, सामान्य परीक्षण करता है।

अन्य चेक या तो गलत नहीं हैं, उनके पास अलग-अलग उपयोग हैं:

  • if (elem) : यदि elem को एक वस्तु होने की गारंटी है, या यदि false , 0 , आदि को "डिफ़ॉल्ट" मान माना जाता है (इसलिए undefined या null बराबर)।

  • typeof elem == 'undefined' उन मामलों में इस्तेमाल किया जा सकता है जहां एक निर्दिष्ट null का एक typeof elem == 'undefined' वैरिएबल या प्रॉपर्टी के लिए एक अलग अर्थ है।

    • यह एकमात्र जांच है कि यदि elem को घोषित नहीं किया गया है तो कोई त्रुटि नहीं elem (अर्थात कोई अन्य विवरण नहीं, window संपत्ति नहीं, फ़ंक्शन तर्क नहीं है)। यह मेरी राय में है, बल्कि खतरनाक है क्योंकि यह टाइपो को किसी का ध्यान न ले जाने की अनुमति देता है। इस से बचने के लिए, नीचे विधि देखें

इसके अलावा undefined खिलाफ एक सख्त तुलना है:

if (elem === undefined) ...

हालांकि, क्योंकि ग्लोबल undefined किसी दूसरे मूल्य के साथ ओवरराइड किया जा सकता है, मौजूदा undefined में इसका उपयोग करने से पहले undefined चर को घोषित करना सबसे अच्छा है:

var undefined; // really undefined
if (elem === undefined) ...

या:

(function (undefined) {
    if (elem === undefined) ...
})();

इस पद्धति का एक माध्यमिक लाभ यह है कि जेएस मिनिफ़ायर undefined चर को एक अक्षर में कम कर सकते हैं, हर बार आपको कुछ बाइट्स बचत कर सकते हैं।




कैसे जाँचें कि कोई चर मौजूद है या नहीं

यह एक चर बुलेटप्रूफ समाधान है यदि कोई चर मौजूद है और इसे आरंभ किया गया है:

var setOrNot = typeof variable !== typeof undefined;

इसका उपयोग सामान्यतः एक टर्नर ऑपरेटर के साथ संयोजन में किया जाता है, यदि कोई निश्चित चर आरंभ नहीं किया गया है:

var dark = typeof darkColor !== typeof undefined ? darkColor : "black";

इनकैप्सुलेशन के साथ समस्याएं

दुर्भाग्यवश, आप किसी फ़ंक्शन में बस अपना चेक इनक्यूबेट नहीं कर सकते।

आप ऐसा कुछ करने का सोच सकते हैं:

function isset(variable) {
    return typeof variable !== typeof undefined;
}

हालांकि, यदि आप बुला रहे हैं तो यह एक संदर्भ त्रुटि उत्पन्न करेगा। isset(foo) और variable foo को परिभाषित नहीं किया गया है, क्योंकि आप एक गैर मौजूदा चर के साथ किसी फ़ंक्शन पर नहीं जा सकते हैं:

अनक्यूट रेफरेंसएर्रर: एफू को परिभाषित नहीं किया गया है

यह परीक्षण करना कि फ़ंक्शन पैरामीटर अनिर्धारित हैं

जबकि हमारे isset फ़ंक्शन का उपयोग करने के लिए इस्तेमाल किया जा सकता है, यह जांच करने के लिए कि क्या कोई चर मौजूद है या नहीं (कारणों के लिए यहां बताया गया है), यह हमें यह जांचने की अनुमति देता है कि फ़ंक्शन के पैरामीटर अनिर्धारित हैं या नहीं:

var a = '5';

var test = function(x, y) {
    console.log(isset(x));
    console.log(isset(y));
};

test(a);

// OUTPUT :
// ------------
// TRUE
// FALSE

यद्यपि y लिए कोई भी मूल्य कार्य test साथ पारित नहीं किया गया है, हमारे जारी फ़ंक्शन इस संदर्भ में पूरी तरह से काम करता है, क्योंकि y फ़ंक्शन test में एक undefined मान के रूप में जाना जाता है।




जांचें कि क्या कोई ऑब्जेक्ट hasOwnProperty()

उत्तर के typeof के hasOwnProperty() के लिए विकल्प, hasOwnProperty() का उपयोग होता है, जो निश्चित रूप से जांच करता है कि यदि कोई ऑब्जेक्ट (जे.एस. में बहुत कुछ है) की कोई संपत्ति है तो एक वैरिएबल (अन्य चीजों के बीच)।

hasOwnProperty() विधि एक बूलियन देता है जो इंगित करती है कि ऑब्जेक्ट की निर्दिष्ट संपत्ति खुद के (वंशानुगत नहीं) संपत्ति के रूप में है या नहीं।

ऑब्जेक्ट से उतरे प्रत्येक ऑब्जेक्ट hasOwnProperty() विधि को प्राप्त करता है। यह विधि यह निर्धारित करने के लिए इस्तेमाल की जा सकती है कि क्या किसी ऑब्जेक्ट को विशिष्ट ऑब्जेक्ट की प्रत्यक्ष संपत्ति के रूप में निर्दिष्ट संपत्ति है; ऑपरेटर के विपरीत, यह विधि ऑब्जेक्ट की प्रोटोटाइप श्रृंखला को नहीं जांचती है।

// Globally established (therefore) properties of window
var foo = "whatever", // string
    bar = false,      // bool
    baz;              // undefined
// window.qux does not exist

console.log( [
    window.hasOwnProperty( "foo" ),             // true
    window.hasOwnProperty( "bar" ),             // true
    window.hasOwnProperty( "baz" ),             // true
    window.hasOwnProperty( "qux" ),             // false
    { foo: [], bar: 0 }.hasOwnProperty( "bar" ) // true
] );

hasOwnProperty() बारे में बहुत अच्छी बात यह है कि इसे बुलाते hasOwnProperty() , हम उस चर का उपयोग नहीं करते हैं जो कि अभी तक अपरिभाषित हो सकता है - जो निश्चित रूप से पहली जगह में आधी समस्या है

यद्यपि कभी भी आदर्श या आदर्श समाधान नहीं, कुछ परिस्थितियों में, यह सिर्फ नौकरी है!




यह जांचने का एक और छोटा रास्ता है, जब आप साधारण कार्य और संबंधित जांच करते हैं। बस सशर्त (टर्नरी) ऑपरेटर का उपयोग करें

var values = typeof variable !== 'undefined' ? variable : '';

इसके अलावा यह सहायक होगा, जब आप ग्लोबल वैरिएबल को संदर्भ चर के उदाहरण असाइनमेंट के साथ घोषित करने का प्रयास करेंगे।

यदि आप चर को चेक करना चाहते हैं तो इसे undefined या null नहीं होना चाहिए। फिर नीचे जांच करें।

जब वैरिएबल घोषित किया जाता है, और यदि आप मान की जांच करना चाहते हैं, तो यह भी सरल है: और यह एक साथ undefined या null जांच करेगा।

var values = variable ? variable : '';



अपरिभाषित, बूलियन, स्ट्रिंग, संख्या, समारोह

if( typeof foo !== 'undefined' ) { 

}

वस्तु, सरणी

if( foo instanceof Array ) { 

}



यह निर्भर करता है अगर आप बस उस चर की व्याख्या करते हैं या यदि आप चाहते हैं कि उसे एक सार्थक मान मिल जाए

यह जांचते हुए कि क्या प्रकार अपरिभाषित है, वह जांच करेगा कि चर अभी तक परिभाषित किया गया है या नहीं।

=== null या !== null केवल जांचता है कि क्या चर का मान बिल्कुल null

== null या != null जांच करेगा कि क्या मूल्य undefined या null

if(value) यह जाँच देगा कि चर क्या है, undefined , null , 0 या रिक्त स्ट्रिंग।




कई मामलों में, इसका उपयोग करते हुए:

if (elem) { // or !elem

आपके लिए नौकरी करेंगे ... ये निम्न मामलों की जांच करेगा:

  1. अनिर्धारित : यदि मूल्य परिभाषित नहीं है और यह undefined
  2. रिक्त : यदि यह रिक्त है, उदाहरण के लिए यदि कोई DOM तत्व मौजूद नहीं है ...
  3. खाली स्ट्रिंग : ''
  4. 0 : नंबर शून्य
  5. नाएन : नंबर नहीं
  6. असत्य

तो यह सभी प्रकार के मामलों को कवर करेगा, लेकिन हमेशा अजीब मामलों में हम भी कवर करना चाहते हैं, उदाहरण के लिए रिक्त स्थान के साथ एक स्ट्रिंग, जैसे कि ' ' , यह जावास्क्रिप्ट में परिभाषित किया जाएगा क्योंकि इसमें स्ट्रिंग्स के अंदर रिक्त स्थान है। .. उदाहरण के लिए, इस मामले में आप ट्रिम () का उपयोग करके एक और जांच जोड़ते हैं, जैसे:

if(elem) {

if(typeof elem === 'string' && elem.trim()) {
///

मैं इस जवाब का त्वरित संक्षिप्त विवरण दिखाने के लिए भी नीचे की छवि बना रहा हूं:




उच्चतम उत्तर सही है, टाइपफ़ॉर्म का उपयोग करें।

हालांकि, मैं क्या कहना चाहता था कि जावास्क्रिप्ट में undefined अस्थिर है (कुछ अशिष्ट कारण के लिए)। तो बस varName !== undefined लिए एक जांच कर रहा है varName !== undefined करने की क्षमता हमेशा की तरह नहीं है जैसा कि आप इसे करने की अपेक्षा करते हैं, क्योंकि अन्य लिब्ज़ बदल सकते हैं अपरिभाषित कुछ जवाब (@ स्काली की, एक के लिए), टाइपफ का उपयोग नहीं करना पसंद करते हैं, और यह एक परेशानी में पड़ सकता है

इसे संभालने का "पुराने" तरीका अपरिभाषित घोषित किया गया था कि कोई अपरिभाषित किसी भी संभावित म्यूटिंग / ओवर-सवारी की भरपाई करने के लिए एक var के रूप में। हालांकि, सबसे अच्छा तरीका अभी भी typeof का उपयोग करने के लिए है क्योंकि यह अन्य कोड से undefined किसी भी ओवरराइड को अनदेखा करेगा। खासकर यदि आप जंगली में उपयोग के लिए कोड लिख रहे हैं, तो कौन जानता है कि पृष्ठ पर और क्या चल रहा है ...




if (typeof console != "undefined") {    
   ...
}

या और अच्छा

if ((typeof console == "object") && (typeof console.profile == "function")) {    
   console.profile(f.constructor);    
}

सभी ब्राउज़रों में काम करता है




यह अनिर्भावित और अशक्त के बीच भेद करना मुश्किल है नल एक वैल्यू है जिसे आप यह इंगित करना चाहते हैं कि चर में कोई विशेष मान नहीं है। अपरिभाषित एक विशेष मूल्य है जो अनअसाइन किए गए वैरिएबल का डिफ़ॉल्ट मान होगा।


var _undefined;
var _null = null;

alert(_undefined); 
alert(_null); 
alert(_undefined == _null);
alert(_undefined === _null);




सबसे मजबूत 'यह परिभाषित किया गया है' चेक प्रकार के साथ है

if (typeof elem === 'undefined')

अगर आप एक डिफाल्ट को निर्धारित करने के लिए केवल एक परिभाषित चर की जाँच कर रहे हैं, तो एक लाइनर पढ़ने में आसानी के लिए आप अक्सर यह कर सकते हैं:

elem = elem || defaultElem;

यह अक्सर उपयोग करने के लिए ठीक है, देखें: जावास्क्रिप्ट में डिफ़ॉल्ट मान सेट करने के लिए रवैयात्मक तरीका

इस प्रकार एक लाइनर का उपयोग कीवर्ड के प्रकार:

elem = (typeof elem === 'undefined') ? defaultElem : elem;



आप ऑपरेटर के typeof उपयोग कर सकते हैं।

उदाहरण के लिए,

var dataSet;

alert("Variable dataSet is : " + typeof dataSet);

ऊपर कोड स्निपेट आउटपुट की तरह वापस लौटाएगा

चर डेटासेट है: अपरिभाषित




नल जावास्क्रिप्ट में एक मान है और typeof null रिटर्न की "object" typeof null

इसलिए, यदि आप शून्य मूल्यों को पारित करते हैं तो स्वीकृत उत्तर काम नहीं करेगा। यदि आप शून्य मानों को पास करते हैं, तो आपको शून्य मानों के लिए अतिरिक्त चेक जोड़ना होगा:

if ((typeof variable !== "undefined") && (variable !== null))  
{
   // the variable is defined and not null
}



ये उत्तर (फ्रेड Gandt समाधान से अलग) सभी या तो गलत या अपूर्ण हैं।

मान लीजिए मुझे मेरे variableName; आवश्यकता variableName; एक undefined मूल्य को ले जाने के लिए, और इसलिए इसे var variableName; से घोषित किया गया है var variableName; जिसका अर्थ है कि यह पहले ही आरंभ किया गया है ; - मैं यह कैसे जांचूं कि यह पहले से ही घोषित है?

या इससे भी बेहतर - मैं तुरंत कैसे जांच करूँ कि "Book1.chapter22.paragraph37" एक कॉल के साथ मौजूद है, लेकिन कोई संदर्भ त्रुटि नहीं है?

हम इसे सबसे शक्तिशाली जस्विस्क्रिप्ट ऑपरेटर, ऑपरेटर में उपयोग कर करते हैं।

"[variable||property]" in [context||root] 
>> true||false

AJAX की लोकप्रियता के समय में मैंने एक विधि (बाद में नामित) एनएनएस () लिखा है जो यह निर्धारित करने में सक्षम है कि नाम स्थान में "Book1.chapter22.paragraph37" जैसे संपत्ति नामों के लिए गहरे परीक्षण भी शामिल हैं।

लेकिन जब से यह पहले प्रकाशित हो चुका है और इसके महान महत्व के कारण इसे एक अलग धागे में प्रकाशित किया जाना है, मैं इसे यहां पोस्ट नहीं करूँगा, लेकिन कीवर्ड ( जावास्क्रिप्ट + आईएनएसएस ) प्रदान करेगा जो सभी स्रोतों के साथ समर्थित स्रोत कोड को ढूंढने में आपकी सहायता करेगा आवश्यक स्पष्टीकरण




प्रश्न में उल्लिखित विशेष स्थिति में,

typeof window.console === "undefined"

समान है

window.console === undefined

मैं बाद की पसंद करता हूं क्योंकि यह छोटा है।

कृपया ध्यान दें कि हम केवल वैश्विक दायरे में console (जो कि सभी ब्राउज़रों में एक window ऑब्जेक्ट है) के लिए देखते हैं। इस विशेष स्थिति में यह वांछनीय है। हम console कहीं और निर्धारित नहीं करना चाहते हैं

@ ब्रेन केली अपने महान उत्तर में तकनीकी विवरण बताते हैं। मैंने केवल निष्कर्ष की कमी की है और इसे पढ़ने के लिए कुछ आसान में पचा।




मेरी प्राथमिकता का typeof(elem) != 'undefined' && elem != null

हालांकि आप चुनते हैं, इस तरह चेक को एक फ़ंक्शन में डालने पर विचार करें

function existy (x) {
    return typeof (x) != 'undefined' && x != null;
}

अगर आपको नहीं पता कि वेरिएबल घोषित किया गया है तो typeof (x) != 'undefined' && x != null; साथ जारी रखें typeof (x) != 'undefined' && x != null;

जहां आप जानते हैं कि चर घोषित किया गया है लेकिन अस्तित्व में नहीं है, आप उपयोग कर सकते हैं

existy(elem) && doSomething(elem);

जो चर आप देख रहे हैं वह कभी-कभी नेस्टेड संपत्ति हो सकती है आप प्रोप का उपयोग कर सकते हैं || {} प्रश्न में संपत्ति के लिए लाइन की जाँच अस्तित्व नीचे जाने के लिए:

var exists = ((((existy(myObj).prop1||{}).prop2||{}).prop3||{})[1]||{}).prop4;

प्रत्येक प्रॉपर्टी का इस्तेमाल करने के बाद (... '|| {}')। अगले प्रॉप, ताकि कोई अनुपलब्ध संपत्ति कोई त्रुटि नहीं डालती।

या आप existy(o) && existy(op) && existy(opq) && doSomething(opq) जैसे existy(o) && existy(op) && existy(opq) && doSomething(opq) उपयोग कर सकते हैं




यह स्थिति पर निर्भर करता है। यदि आप कुछ ऐसे चीजों की जांच कर रहे हैं जो संभवत: आपके कोड के बाहर विश्व स्तर पर निर्धारित किए गए हों (जैसे कि शायद jQuery) तो आप चाहते हैं:

if (typeof(jQuery) != "undefined")

(वहाँ सख्त समानता की कोई ज़रूरत नहीं, प्रकार हमेशा हमेशा एक स्ट्रिंग देता है।) लेकिन अगर आपके पास किसी ऐसे फ़ंक्शन पर तर्क है जो हो सकता है या नहीं हो सकता है, तो वे हमेशा परिभाषित होंगे, लेकिन छोड़े गए हैं।

function sayHello(name) {
    if (name) return "Hello, " + name;
    else return "Hello unknown person";
}
sayHello(); // => "Hello unknown person"



बहस में योगदान करने के लिए, अगर मुझे पता है कि चर एक स्ट्रिंग या एक ऑब्जेक्ट होना चाहिए, तो मैं हमेशा if (!variable) यानी if (!variable) पसंद करता हूं, इसलिए इसकी झूठी जांच करनी चाहिए। इससे अधिक साफ कोड लाया जा सकता है, उदाहरण के लिए:

if (typeof data !== "undefined" && typeof data.url === "undefined") {
        var message = 'Error receiving response';
        if (typeof data.error !== "undefined") {
            message = data.error;
        } else if (typeof data.message !== "undefined") {
            message = data.message;
        }
        alert(message); 
}

.. को कम किया जा सकता है:

if (data && !data.url) {
    var message = data.error || data.message || 'Error receiving response';
    alert(message)
} 



मैं ऑब्जेक्ट के आधार पर दो अलग-अलग तरीकों का उपयोग करता हूं।

if( !variable ){
  // variable is either
  // 1. empty string i.e. '';
  // 2. Integer 0;
  // 3. undefined;
  // 4. null;
}

कभी-कभी मैं झूठ के रूप में एक खाली स्ट्रिंग का मूल्यांकन नहीं करना चाहता, इसलिए मैं इस केस का उपयोग करता हूं

function invalid( item ){
  return (item === undefined || item === null);
}

if( invalid( variable )){
  // only here if null or undefined;
}

यदि आपको इसके विपरीत की आवश्यकता है, तो पहले उदाहरण में! चर हो जाता है !! चर, और अमान्य फ़ंक्शन === बन गया! = और फ़ंक्शन के नाम में परिवर्तन नहींअवैध।




थोड़ा और अधिक कार्यात्मक और प्रयोग करने में आसान:

function exist(obj)
{
    return (typeof obj !== 'undefined');
}

यदि मौजूद है तो फ़ंक्शन सत्य वापस लौटाएगा, और गलत होगा यदि मौजूद नहीं है।




यदि आप निश्चित ब्लॉक को कुछ करने के लिए चाहते हैं तो इसका उपयोग करें

if (typeof variable !== 'undefined') {
    // the variable is defined
}

यदि आप अपरिभाषित ब्लॉक कुछ करना चाहते हैं या असाइन या चर को परिभाषित करते हैं, तो इसका उपयोग करें

if (typeof variable === 'undefined') {
    // the variable is undefined
}



एक साधारण के बारे में:

if(!!variable){
  //the variable is defined
}



यह जाँचने के लिए कि क्या एक वेरिएबल घोषित / सेट किया गया है, मैंने इस गंदे चाल को किया है।

मुझे एक समारोह में कोड निकालने का कोई तरीका नहीं मिला है, यहां तक ​​कि eval साथ भी।

"use strict";

// var someVar;

var declared;
try {
  someVar;
  declared = true;
} catch(e) {
  declared = false;
}

if (declared) {
  console.log("someVar is declared; now has the value: " + someVar);
} else {
  console.log("someVar is not declared");
}



सुनिश्चित करें कि यदि यह मदद करेगा, तो मुझे यह जांचने की ज़रूरत थी कि संबंधित पटकथा चलाने से पहले पृष्ठ पर परिभाषित एक वार को चुना जा रहा था और मेरे लिए निम्नलिखित काम ठीक किया गया था।

if (window.myvar) { // run scripts here }

यह थोड़ा आसान है, लेकिन एक बंद या पसंद के लिए ठीक है।




मैं इसे ऊपर के उत्तरों में नहीं देख सकता, इसलिए मैं इसे यहाँ सुझाऊंगा, मुझे लगता है

function isDefined(x) { return !!x }

if( isDefined(x) ) {
    //The variable is defined
}

! x सही iff x या तो रिक्त या अपरिभाषित है , तो वापस आता होगा, तो x केवल सच iff x न तो अनिर्धारित है और न ही नहीं लौटाएगा।

मुझे पता है कि यह भी अशक्त मामले के लिए है, लेकिन यहाँ इस बारे में उचित चेतावनी है








Links