javascript - atscript - हिंदी में जावास्क्रिप्ट परिचय




जावास्क्रिप्ट में शून्य, अपरिभाषित, या रिक्त चर के लिए जांच करने के लिए कोई मानक फ़ंक्शन है? (18)

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

function isEmpty(value){
    return (typeof value === "undefined" || value === null);
}

यह 0 , "" , और वस्तुओं (यहां तक ​​कि खाली वस्तु और सरणी) मानते हैं वैध "मान" हैं।

क्या कोई सार्वभौमिक जावास्क्रिप्ट फ़ंक्शन है जो जांचता है कि एक चर के पास एक मान है और यह सुनिश्चित करता है कि यह undefined या null ? मुझे यह कोड मिला है, लेकिन मुझे यकीन नहीं है कि इसमें सभी मामलों को शामिल किया गया है:

function isEmpty(val){
    return (val === undefined || val == null || val.length <= 0) ? true : false;
}

आप उपयोग कर सकते हैं:

अगर स्ट्रिंग या मान खाली नहीं है तो मान्य करने के लिए खंड। इस तरह:

if (someVar.value) 
{
  //its not emppty
}
else
{
  //Its empty
}

आप सीधे समानता ऑपरेटर का उपयोग कर सकते हैं

<script>
    var firstName;
    var lastName = null;
    /* Since null == undefined is true, the following statements will catch both null and undefined */
        if(firstName == null){
            alert('Variable "firstName" is undefined.');
        }    
        if(lastName == null){
           alert('Variable "lastName" is null.');
        }
</script>

डेमो @ कैसे निर्धारित करें कि परिवर्तनीय जावास्क्रिप्ट का उपयोग कर अपरिभाषित या शून्य है


आपको निम्न कार्य उपयोगी मिल सकता है:

function typeOf(obj) {
  return {}.toString.call(obj).split(' ')[1].slice(0, -1).toLowerCase();
}

या ES7 में (अगर और सुधार में टिप्पणी करें)

function typeOf(obj) {
  const { toString } = Object.prototype;
  const stringified = obj::toString();
  const type = stringified.split(' ')[1].slice(0, -1);

  return type.toLowerCase();
}

परिणाम:

typeOf(); //undefined
typeOf(null); //null
typeOf(NaN); //number
typeOf(5); //number
typeOf({}); //object
typeOf([]); //array
typeOf(''); //string
typeOf(function () {}); //function
typeOf(/a/) //regexp
typeOf(new Date()) //date

"ध्यान दें कि बाइंड ऑपरेटर (: :) ES2016 (ES7) का हिस्सा नहीं है और न ही ईसीएमएस्क्रिप्ट मानक का कोई भी बाद का संस्करण है। वर्तमान में यह भाषा के लिए पेश होने के लिए चरण 0 (स्ट्रॉमैन) प्रस्ताव है।" - साइमन Kjellberg। लेखक शाही ascension प्राप्त करने के लिए इस सुंदर प्रस्ताव के लिए अपना समर्थन जोड़ना चाहता है।


मुझे पता है कि यह एक पुराना सवाल है, लेकिन यह सबसे सुरक्षित जांच है और मैंने इसे यहां बिल्कुल पोस्ट नहीं देखा है:

if (typeof value != 'undefined' && value) {
    //deal with value'
};

यह उन मामलों को कवर करेगा जहां मूल्य कभी परिभाषित नहीं किया गया था, और इनमें से कोई भी:

  • शून्य
  • अपरिभाषित (अपरिभाषित का मान पैरामीटर के समान नहीं है जिसे कभी परिभाषित नहीं किया गया था)
  • 0
  • "" (खाली स्ट्रिंग)
  • असत्य
  • NaN

टाइप मूल्य में सख्त समानता के लिए पीएस की आवश्यकता नहीं है ! = 'अपरिभाषित'


मुझे लगता है कि इस्तेमाल कर रहे हैं? ऑपरेटर थोड़ा क्लीनर है।

var ? function_if_exists() : function_if_doesnt_exist();

यदि आप सादा जावास्क्रिप्ट पसंद करते हैं तो इसे आजमाएं:

  /**
   * Checks if `value` is empty. Arrays, strings, or `arguments` objects with a
   * length of `0` and objects with no own enumerable properties are considered
   * "empty".
   *
   * @static
   * @memberOf _
   * @category Objects
   * @param {Array|Object|string} value The value to inspect.
   * @returns {boolean} Returns `true` if the `value` is empty, else `false`.
   * @example
   *
   * _.isEmpty([1, 2, 3]);
   * // => false
   *
   * _.isEmpty([]);
   * // => true
   *
   * _.isEmpty({});
   * // => true
   *
   * _.isEmpty('');
   * // => true
   */

function isEmpty(value) {
    if (!value) {
      return true;
    }
    if (isArray(value) || isString(value)) {
      return !value.length;
    }
    for (var key in value) {
      if (hasOwnProperty.call(value, key)) {
        return false;
      }
    }
    return true;
  }

अन्यथा, अगर आप अंडरस्कोर या लॉनाश का उपयोग कर रहे हैं, तो कोशिश करें:

_.isEmpty(value)

यदि चर घोषित नहीं किया गया है, तो आप किसी फ़ंक्शन का उपयोग करके अपरिभाषित परीक्षण करने में सक्षम नहीं होंगे क्योंकि आपको कोई त्रुटि मिलेगी।

if (foo) {}
function (bar) {}(foo)

अगर फू घोषित नहीं किया गया है तो दोनों एक त्रुटि उत्पन्न करेंगे।

यदि आप परीक्षण करना चाहते हैं कि एक चर घोषित किया गया है तो आप इसका उपयोग कर सकते हैं

typeof foo != "undefined"

अगर आप परीक्षण करना चाहते हैं कि फू घोषित किया गया है और इसका एक मूल्य है जिसका आप उपयोग कर सकते हैं

if (typeof foo != "undefined" && foo) {
    //code here
}

यह एक बहुत ही सरल है।

if(data) {
  //Comes inside only if the data is not empty and not null 
}

यह जांच करेगा कि अनिश्चित घोंसले का चर अपरिभाषित है या नहीं

function Undef(str) 
{
  var ary = str.split('.');
  var w = window;
  for (i in ary) {
    try      { if (typeof(w = w[ary[i]]) === "undefined") return true; }
    catch(e) { return true; }
  }
  return false;
}

if (!Undef("google.translate.TranslateElement")) {

उपरोक्त जांच करता है कि क्या Google अनुवाद फ़ंक्शन अनुवाद एलीमेंट मौजूद है। यह बराबर है:

if (!(typeof google === "undefined" 
 || typeof google.translate === "undefined" 
 || typeof google.translate.TranslateElement === "undefined")) {

यह स्थिति जांचें

if (!!foo) {
    //foo is defined
}

आपको जो चाहिए वह यह है।


यहां मेरा है - यदि मूल्य शून्य, अपरिभाषित, आदि या खाली है (यानी केवल खाली रिक्त स्थान हैं):

function stringIsEmpty(value) {

    return value ? value.trim().length == 0 : true;

}

सर्वोत्तम रेटिंग के साथ पहला जवाब गलत है। यदि मान अपरिभाषित है तो यह आधुनिक ब्राउज़र में अपवाद फेंक देगा। आपको इसका उपयोग करना होगा:

if (typeof(value) !== "undefined" && value)

या

if (typeof value  !== "undefined" && value)

हालांकि एक बूढ़ी, क्या भूल जाता है कि उन्हें अपना कोड ब्लॉक लपेटना चाहिए और फिर त्रुटि पकड़ना चाहिए और फिर परीक्षण करें ...

function checkup( t ){
  try{
    for(p in t){
      if( p.hasOwnProperty( t ) ){
        return true;
      }
    }
    return false;
  }catch(e){
    console.log("ERROR : "+e);
    return e;
  }
}

तो आपको वास्तव में हाथ से पहले एक संभावित समस्या की जांच करने की ज़रूरत नहीं है, आप बस इसे पकड़ लें और फिर इससे निपटें कि आप कैसे चाहते हैं।


! खाली तारों (""), शून्य, अपरिभाषित, झूठी और संख्या 0 और NaN के लिए जांचें। कहें, अगर एक स्ट्रिंग खाली है var name = "" तो console.log(!name) true लौटाता true

function isEmpty(val){
  return !val;
}

यह कार्य सत्य वापस आ जाएगा यदि वैल खाली है, शून्य, अपरिभाषित, झूठा, संख्या 0 या NaN


// value is undefined or null
return value === undefined || value === null;

जावास्क्रिप्ट निंजा == ऑपरेटर का उपयोग कर सकते हैं:

return value == null;

function isEmpty(value){
  return (value == null || value.length === 0);
}

यह के लिए सच हो जाएगा

undefined  // Because undefined == null

null

[]

""

और एक फ़ंक्शन की length बाद शून्य तर्क फ़ंक्शन घोषित पैरामीटर की संख्या है।

बाद की श्रेणी को अस्वीकार करने के लिए, आप केवल रिक्त तारों की जांच करना चाहेंगे

function isEmpty(value){
  return (value == null || value === '');
}

var myNewValue = myObject && myObject.child && myObject.child.myValue;

यह कभी भी एक त्रुटि फेंक नहीं देगा। अगर myObject , बच्चा , या myValue शून्य है तो मेरा नया वैल्यू शून्य हो जाएगा। कोई त्रुटि नहीं फेंक दी जाएगी






undefined