जावास्क्रिप्ट () समतुल्य है


552

PHP में आप कर सकते हैं if(isset($array['foo'])) { ... }। जावास्क्रिप्ट में आप अक्सर if(array.foo) { ... }ऐसा ही करते हैं, लेकिन यह बिल्कुल वैसा ही कथन नहीं है। यदि array.fooमौजूद है तो स्थिति झूठी का मूल्यांकन भी करेगी लेकिन ( falseया 0शायद अन्य मान भी है)।

issetजावास्क्रिप्ट में PHP के सही समकक्ष क्या है ?

व्यापक अर्थों में, जावास्क्रिप्ट की एक सामान्य, पूर्ण मार्गदर्शिका, जो चर का अस्तित्व नहीं है, बिना मूल्य के चर आदि सुविधाजनक होंगे।


1
मैंने एक फ़ंक्शन लिखा है जो वस्तुओं के अस्तित्व का परीक्षण करेगा कोई बात नहीं क्वेरी की गहराई: stackoverflow.com/a/12681101/1268003 मेरे कोड का उपयोग करते हुए, इस धागे में @CMS द्वारा साझा किए गए कुछ ज्ञान के साथ, आप आसानी से एक वैश्विक लिख सकते हैं फ़ंक्शन जो PHP की तरह बहुत काम करता है: s isset।
मार्टिन एंडरसन २

3
यदि आप अंडरस्कोर का प्रयोग करते हैं तो कोशिश करें_.isUndefined(arr.foo)
विटाली फेडोरेंको

वैकल्पिक श्रृंखलन शायद ज्यादातर लोगों की तलाश में हो जाएगा stackoverflow.com/a/60845999/2100372
zoran404

जवाबों:


938

मैं आमतौर पर typeofऑपरेटर का उपयोग करता हूं :

if (typeof obj.foo !== 'undefined') {
  // your code here
}

"undefined"यदि संपत्ति मौजूद नहीं है या इसका मूल्य है तो यह वापस आ जाएगा undefined

(यह भी देखें: के बीच अंतर undefinedऔर परिभाषित नहीं किया जा रहा है। )

hasOwnPropertyविधि के आधार पर किसी संपत्ति के मौजूद होने का पता लगाने के अन्य तरीके हैं :

if (obj.hasOwnProperty('foo')) {
  // your code here
}

और inऑपरेटर:

if ('foo' in obj) {
  // your code here
}

अंतिम दो के बीच का अंतर यह है कि hasOwnPropertyविधि यह जांच करेगी कि संपत्ति भौतिक रूप से वस्तु पर मौजूद है (संपत्ति विरासत में नहीं मिली है)।

inऑपरेटर सभी गुण प्रोटोटाइप श्रृंखला, जैसे में पहुंचा जा सकता पर जाँच करेगा:

var obj = { foo: 'bar'};

obj.hasOwnProperty('foo'); // true
obj.hasOwnProperty('toString'); // false
'toString' in obj; // true

जैसा कि आप देख सकते हैं, hasOwnPropertyरिटर्न falseऔरin ऑपरेटर विधि की trueजांच करते समय लौटता है toString, इस विधि को प्रोटोटाइप श्रृंखला में परिभाषित किया गया है, क्योंकि objइनहेरिट फॉर्म बनता है Object.prototype


23
typeofबजाय उपयोग क्यों if( obj.foo !== undefined )?
मैट बॉल

7
आह। एक दिन मैं वास्तव में क्रॉस-ब्राउज़र जावास्क्रिप्ट का एक टुकड़ा लिखूंगा। तब तक ...
मैट बॉल

37
इसके साथ समस्या यह है कि जब आप गहरी संपत्तियों की जांच करने का प्रयास करते हैं तो आपको एक त्रुटि मिलती है, उदाहरण के लिए: obj.thisdoesntexist.foo! == अपरिभाषित। PHP में आप किसी भी डीप पर सुरक्षित या खाली या सुरक्षित रूप से उपयोग कर सकते हैं।
एनरिक

6
IE8 में "hasOwnPropery" नहीं है
अधिकतम 4

12
वास्तव में, PHP isset($abc->def->ghi->jkl)जावास्क्रिप्ट अपवाद के बिना , एक अपवाद को बढ़ाने और स्क्रिप्ट को रोकने के बिना अनुमति देता है typeof। आपको कुछ इस तरह का उपयोग करना होगा try{ abc.def.ghi.jkl; isset=true } catch(e){ isset=false }
स्टीवन प्रिबिलिनस्की

43

पुराने पुराने धागे, लेकिन एक बराबर चलाने के लिए नए तरीके हैं isset()

ESNext (स्टेज 4 दिसंबर 2019)

दो नए वाक्यविन्यास हमें isset()कार्यक्षमता के उपयोग को सरल बनाने की अनुमति देते हैं :

कृपया डॉक्स पढ़ें और ब्राउज़र संगतता को ध्यान में रखें।

पिछला उत्तर

स्पष्टीकरण के लिए नीचे देखें। नोट मैं StandardJS सिंटैक्स का उपयोग करता हूं

उदाहरण उपयोग

// IMPORTANT pass a function to our isset() that returns the value we're
// trying to test(ES6 arrow function)
isset(() => some) // false

// Defining objects
let some = { nested: { value: 'hello' } }

// More tests that never throw an error
isset(() => some) // true
isset(() => some.nested) // true
isset(() => some.nested.value) // true
isset(() => some.nested.deeper.value) // false

// Less compact but still viable except when trying to use `this` context
isset(function () { return some.nested.deeper.value }) // false

उत्तर क्रिया

/**
 * Checks to see if a value is set.
 *
 * @param {Function} accessor Function that returns our value
 */
function isset (accessor) {
  try {
    // Note we're seeing if the returned value of our function is not
    // undefined
    return typeof accessor() !== 'undefined'
  } catch (e) {
    // And we're able to catch the Error it would normally throw for
    // referencing a property of undefined
    return false
  }
}

व्याख्या

पीएचपी

ध्यान दें कि PHP में आप किसी भी चर को किसी भी गहराई पर संदर्भित कर सकते हैं - यहां तक ​​कि एक गैर-सरणी तक पहुंचने की कोशिश कर रहा है क्योंकि एक सरणी एक साधारण trueया वापस आ जाएगी false:

// Referencing an undeclared variable
isset($some); // false

$some = 'hello';

// Declared but has no depth(not an array)
isset($some); // true
isset($some['nested']); // false

$some = ['nested' => 'hello'];

// Declared as an array but not with the depth we're testing for
isset($some['nested']); // true
isset($some['nested']['deeper']); // false

जे एस

जावास्क्रिप्ट में, हमारे पास वह स्वतंत्रता नहीं है, हम हमेशा एक त्रुटि प्राप्त करेंगे यदि हम ऐसा ही करते हैं क्योंकि जेएस तुरंत मूल्य को एक्सेस करने का प्रयास कर रहा है deeper इससे पहले कि हम इसे अपने isset()फ़ंक्शन में लपेट सकें ...

// Common pitfall answer(ES6 arrow function)
const isset = (ref) => typeof ref !== 'undefined'

// Same as above
function isset (ref) { return typeof ref !== 'undefined' }

// Referencing an undeclared variable will throw an error, so no luck here
isset(some) // Error: some is not defined

// Defining a simple object with no properties - so we aren't defining
// the property `nested`
let some = {}

// Simple checking if we have a declared variable
isset(some) // true

// Now trying to see if we have a top level property, still valid
isset(some.nested) // false

// But here is where things fall apart: trying to access a deep property
// of a complex object; it will throw an error
isset(some.nested.deeper) // Error: Cannot read property 'deeper' of undefined
//         ^^^^^^ undefined

अधिक असफल विकल्प:

// Any way we attempt to access the `deeper` property of `nested` will
// throw an error
some.nested.deeper.hasOwnProperty('value') // Error
//   ^^^^^^ undefined

Object.hasOwnProperty('value', some.nested.deeper) // Error
//                                  ^^^^^^ undefined

// Same goes for typeof
typeof some.nested.deeper !== 'undefined' // Error
//          ^^^^^^ undefined

और कुछ काम विकल्प जो बेमानी हो सकते हैं:

// Wrap everything in try...catch
try { isset(some.nested.deeper) } catch (e) {}
try { typeof some.nested.deeper !== 'undefined' } catch (e) {}

// Or by chaining all of the isset which can get long
isset(some) && isset(some.nested) && isset(some.nested.deeper) // false
//                        ^^^^^^ returns false so the next isset() is never run

निष्कर्ष

अन्य सभी उत्तर - हालांकि अधिकांश व्यवहार्य हैं ...

  1. मान लें कि आप केवल यह देखने के लिए जाँच कर रहे हैं कि चर अपरिभाषित नहीं है जो कुछ उपयोग मामलों के लिए ठीक है, लेकिन फिर भी एक त्रुटि फेंक सकता है
  2. मान लें कि आप केवल एक शीर्ष स्तर की संपत्ति तक पहुंचने का प्रयास कर रहे हैं, जो कुछ उपयोग मामलों के लिए फिर से ठीक है
  3. आपको PHP के isset()
    उदाहरण के सापेक्ष आदर्श दृष्टिकोण से कम का उपयोग करने के लिए मजबूर करता हैisset(some, 'nested.deeper.value')
  4. eval()जो काम करता है का उपयोग करें , लेकिन मैं व्यक्तिगत रूप से बचें

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

मैंने इस पर बहुत समय तक वेय को बिताया है, इसलिए उम्मीद है कि यह लोगों को बाहर निकालने में मदद करेगा।

पढ़ने के लिए धन्यवाद!


25

स्रोत का संदर्भ

    module.exports = function isset () {
  //  discuss at: http://locutus.io/php/isset/
  // original by: Kevin van Zonneveld (http://kvz.io)
  // improved by: FremyCompany
  // improved by: Onno Marsman (https://twitter.com/onnomarsman)
  // improved by: Rafał Kukawski (http://blog.kukawski.pl)
  //   example 1: isset( undefined, true)
  //   returns 1: false
  //   example 2: isset( 'Kevin van Zonneveld' )
  //   returns 2: true

  var a = arguments
  var l = a.length
  var i = 0
  var undef

  if (l === 0) {
    throw new Error('Empty isset')
  }

  while (i !== l) {
    if (a[i] === undef || a[i] === null) {
      return false
    }
    i++
  }

  return true
}

phpjs.org ज्यादातर लोकट के पक्ष में सेवानिवृत्त होता है यहां नई लिंक http://locutus.io/php/var/isset है


6
जब बुला यह एक अपवाद बढ़ा देंगे isset(abc.def.ghi)मामले में अगर abc.defअपरिभाषित है। हालांकि इस समाधान को एक स्ट्रिंग के रूप में एक चर नाम स्वीकार करने के साथ जोड़कर, यह PHP संस्करण के समान होगा।
स्टीवन प्रिबिलिनस्की


8
//
//  tring to reference non-existing variable throws ReferenceError 
//  before test function is even executed
//
//  example, if you do:
//    
//     if ( isset( someVar ) ) 
//        doStuff( someVar );
//   
//  you get a ReferenceError ( if there is no someVar... ) 
//  and isset fn doesn't get executed.
//
//  if you pass variable name as string, ex. isset( 'novar' );, 
//  this might work:
//
function isset ( strVariableName ) { 

    try { 
        eval( strVariableName );
    } catch( err ) { 
        if ( err instanceof ReferenceError ) 
           return false;
    }

    return true;

 } 
//
//


6

मैं हमेशा इस जेनेरिक फ़ंक्शन का उपयोग आदिम चर पर एरर्स और ऑब्जेक्ट्स को रोकने के लिए करता हूं।

isset = function(obj) {
  var i, max_i;
  if(obj === undefined) return false;
  for (i = 1, max_i = arguments.length; i < max_i; i++) {
    if (obj[arguments[i]] === undefined) {
        return false;
    }
    obj = obj[arguments[i]];
  }
  return true;
};

console.log(isset(obj));                   // returns false
var obj = 'huhu';
console.log(isset(obj));                   // returns true
obj = {hallo:{hoi:'hoi'}};
console.log(isset(obj, 'niet'));           // returns false
console.log(isset(obj, 'hallo'));          // returns true
console.log(isset(obj, 'hallo', 'hallo')); // returns false
console.log(isset(obj, 'hallo', 'hoi'));   // returns true


4

एक चर मौजूद होने पर परीक्षण के लिए यह एक बहुत अच्छा बुलेटप्रूफ समाधान है:

var setOrNot = typeof variable !== typeof undefined ? true : false;

दुर्भाग्य से, आप इसे केवल एक फ़ंक्शन में एनकैप्सुलेट नहीं कर सकते।

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

function isset(variable) {
    return typeof variable !== typeof undefined ? true : false;
}

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

बिना संदर्भित संदर्भ: foo परिभाषित नहीं है

दूसरी ओर, यह आपको परीक्षण करने की अनुमति देता है कि क्या फ़ंक्शन पैरामीटर अपरिभाषित हैं:

var a = '5';

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

test(a);

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

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


माइनर नाइट: `? सच: असत्य `सतही है। का नतीजा !==पहले से ही एक बूलियन है।
टूलमेकरसेव

4
(typeof SOMETHING) !== 'undefined'

जब उपयोग किया जाता है तो यह लिखना बहुत लंबा है। लेकिन हम typeofकीवर्ड को फ़ंक्शन में पैकेज नहीं कर सकते , क्योंकि फ़ंक्शन को कॉल करने से पहले एक त्रुटि डाली जाएगी, इस तरह:

function isdef($var) {
    return (typeof $var) !== 'undefined';
}

isdef(SOMETHING); ///// thrown error: SOMETHING is not defined

इसलिए मैंने एक तरीका निकाला:

function isdef($type) {
    return $type !== 'undefined';
}

isdef(typeof SOMETHING);

यह व्यक्तिगत चर (चर जो सभी में मौजूद नहीं है), या ऑब्जेक्ट गुण (गैर-मौजूद गुण) दोनों के साथ काम कर सकते हैं। और PHP से केवल 7 अधिक वर्ण isset


यह मेरे लिए काम करता है, इसका उपयोग यह जांचने के लिए किया जाता है कि कोई विशेष जौन प्रतिक्रिया मौजूद है या नहीं।
जूलियस


3
function isset(variable) {
    try {
        return typeof eval(variable) !== 'undefined';
    } catch (err) {
        return false;
    }
}

4
कुछ विवरण भी जोड़ें।
श्री कृष्ण

जैसा कि पहले के कई जवाबों में उल्लेख किया गया है, यह एक रेफरेंस को फेंक देगा यदि उसे एक चर के साथ कहा जाता है जिसे कभी घोषित नहीं किया गया है। उदा isset(someVar), जहां someVarकभी घोषित नहीं किया गया है। हालाँकि आप जो करते हैं eval, उसे देखते हुए , आप संभवत: एक स्ट्रिंग को अंदर दिखाने का इरादा रखते हैं । क्या आपका अभीष्ट उपयोग है isset('someVar')? यदि हां, तो यह पहले के उत्तर के समान दिखता है - आपके उत्तर के बारे में क्या नया है?
टूलमेकरसेव

3
window.isset = function(v_var) {
    if(typeof(v_var) == 'number'){ if(isNaN(v_var)){ return false; }}
    if(typeof(v_var) == 'undefined' || v_var === null){ return false;   } else { return true; }
};

प्लस टेस्ट:

https://gist.github.com/daylik/24acc318b6abdcdd63b46607513ae073


जैसा कि पहले के कई जवाबों में उल्लेख किया गया है, यह एक रेफरेंस को फेंक देगा यदि उसे एक चर के साथ कहा जाता है जिसे कभी घोषित नहीं किया गया है।
टूलमेकरसेव

3

Wether html ब्लॉक की जाँच करने के लिए मौजूदा है या नहीं, मैं इस कोड का उपयोग कर रहा हूँ:

if (typeof($('selector').html()) != 'undefined') {
    // $('selector') is existing
    // your code here
}

2

एक स्ट्रिंग के रूप में ऑब्जेक्ट पथ प्रदान करें, फिर आप इस स्ट्रिंग को एक पथ में तोड़ सकते हैं और हल कर सकते हैं hasOwnProperty प्रत्येक पुनरावृत्ति के साथ ऑब्जेक्ट को अधिलेखित करते हुए प्रत्येक चरण पर ।

यदि आप ES6 वातावरण में कोडिंग कर रहे हैं, तो इस स्टैकओवरफ़्लो Ques पर एक नज़र डालें ।

var a;

a = {
    b: {
        c: 'e'
    }
};

function isset (obj, path) {
    var stone;

    path = path || '';

    if (path.indexOf('[') !== -1) {
        throw new Error('Unsupported object path notation.');
    }

    
    path = path.split('.');
    
    do {
        if (obj === undefined) {
            return false;
        }

        stone = path.shift();
        
        if (!obj.hasOwnProperty(stone)) {
            return false;
        }
        
        obj = obj[stone];
        
    } while (path.length);

    return true;
}

console.log(
    isset(a, 'b') == true,
    isset(a, 'b.c') == true,
    isset(a, 'b.c.d') == false,
    isset(a, 'b.c.d.e') == false,
    isset(a, 'b.c.d.e.f') == false
);


2

मैं एक फ़ंक्शन का उपयोग करता हूं जो चर और वस्तुओं की जांच कर सकता है। jQuery के साथ काम करने के लिए बहुत सुविधाजनक है

    function _isset (variable) {
        if(typeof(variable) == "undefined" || variable == null)
            return false;
        else
            if(typeof(variable) == "object" && !variable.length) 
                return false;
            else
                return true;
    };

जैसा कि पहले के कई जवाबों में उल्लेख किया गया है, यह एक रेफरेंस को फेंक देगा यदि उसे एक चर के साथ कहा जाता है जिसे कभी घोषित नहीं किया गया है।
टूलमेकरसेव

1

मेरे लिए यह वास्तव में एक समस्या थी जब मैं किसी वस्तु की गहरी संपत्ति तक पहुंच रहा था, इसलिए मैंने एक फ़ंक्शन बनाया, जो मौजूद होने पर संपत्ति का मूल्य वापस कर देगा अन्यथा यह गलत वापस आ जाएगा। आप अपना समय बचाने के लिए इसका इस्तेमाल कर सकते हैं,

//Object on which we want to test
var foo = {
    bar: {
        bik: {
            baz: 'Hello world'
        }
    }
};


/*
USE: To get value from the object using it properties supplied (Deeper),
    if found it will return the property value if not found then will return false

You can use this function in two ways
WAY - 1:
Passing an object as parameter 1 and array of the properties as parameter 2
EG: getValueFromObject(foo, ['bar', 'bik', 'baz']);
WAY - 2: (This will work only if, your object available in window object)
Passing an STRING as parameter 1(Just similarly how we retrieve value form object using it's properties - difference is only the quote)
EG: getValueFromObject('foo.bar.bik.baz');
*/
function getValueFromObject(object, properties) {
    if(typeof(object) == 'string') {            //Here we extract our object and it's properties from the string
        properties = object.split('.');
        object = window[properties[0]];
        if(typeof(object) == 'undefined') {
            return false;
        }
        properties.shift();
    }
    var property = properties[0];
    properties.shift();
    if(object != null && typeof(object[property]) != 'undefined') {
        if(typeof(object[property]) == 'object') {
            if(properties.length != 0) {
                return getValueFromObject(object[property], properties);    //Recursive call to the function
            } else {
                return object[property];
            }
        } else {
            return object[property];
        }
    } else {
        return false;
    }
}
console.log(getValueFromObject('fooo.bar.bik.baz'));        //false
console.log(getValueFromObject('foo.bar.bik.baz'));         //Hello world
console.log(getValueFromObject('foo'));                     //false
console.log(getValueFromObject('foo.bar.bik'));             //returns an object { baz: 'Hello World' }
console.log(getValueFromObject(foo, ['bar', 'bik']));       //returns an object { baz: 'Hello World' }
console.log(getValueFromObject(foo, ['bar', 'bik', 'baz']));//Hello world

1

यदि आप जांचना चाहते हैं कि क्या कोई तत्व मौजूद है, तो बस निम्नलिखित कोड का उपयोग करें:

if (object) {
  //if isset, return true
} else {
  //else return false
}

यह नमूना है:

function switchDiv() {
    if (document.querySelector("#divId")) {
        document.querySelector("#divId").remove();
    } else {
        var newDiv = document.createElement("div");
        newDiv.id = "divId";
        document.querySelector("body").appendChild(newDiv);
    }
}

document.querySelector("#btn").addEventListener("click", switchDiv);
#divId {
    background: red;
    height: 100px;
    width: 100px;
    position: relative;
    
}
<body>
  <button id="btn">Let's Diiiv!</button>
</body>



0

PHP मैन्युअल कहते हैं:

isset - निर्धारित करें कि क्या एक चर सेट है और NULL नहीं है

और इंटरफ़ेस कुछ इस तरह है:

bool isset ( mixed $var [, mixed $... ] )

पैरामीटर $varजाँच किया जाने वाला चर है। यह किसी भी संख्या में पैरामीटर हो सकता है।

isset () रिटर्न TRUEअगर var मौजूद है और इसके अलावा अन्य वैल्यू है NULLFALSEअन्यथा।

कुछ उदाहरण:

$foo = 'bar';
var_dump(isset($foo));        -> true

$baz = null;
var_dump(isset($baz));        -> false

var_dump(isset($undefined));  -> false

यह ध्यान में रखते हुए, जाहिर है, यह php isset()फ़ंक्शन के सटीक समकक्ष लिखना संभव नहीं है । उदाहरण के लिए जब हम इस तरह कहते हैं:

if (isset(some_var)) {

}

function issset() {
    // function definition
}

जावास्क्रिप्ट ट्रिगर Uncaught ReferenceError: some_var is not defined at (file_name):line_number। इस व्यवहार के बारे में महत्वपूर्ण और उल्लेखनीय बात यह है कि जब गैर-मौजूद चर को सामान्य कार्यों में पारित करने की कोशिश की जाती है, तो त्रुटि उत्पन्न होती है।

लेकिन PHP में isset() में वास्तव में नियमित कार्य नहीं होते हैं, लेकिन भाषा का निर्माण होता है। इसका मतलब है कि वे स्वयं PHP भाषा का हिस्सा हैं, कार्यों के सामान्य नियमों से नहीं खेलते हैं और इसलिए गैर-मौजूद चर के लिए एक त्रुटि को ट्रिगर नहीं करने के साथ दूर हो सकते हैं। यह महत्वपूर्ण है जब यह पता लगाने की कोशिश की जाए कि एक चर मौजूद है या नहीं। लेकिन जावास्क्रिप्ट में, यह पहले से मौजूद त्रुटि को गैर-मौजूद चर के साथ फ़ंक्शन कॉल को ट्रिगर करता है।

मेरा कहना यह है कि हम इसे जावास्क्रिप्ट जावास्क्रिप्ट फ़ंक्शन के रूप में नहीं लिख सकते, लेकिन हम ऐसा कुछ कर सकते हैं

if (typeof some_var !== 'undefined') {
   // your code here
}

यदि आप सटीक समान प्रभाव चाहते हैं, तो PHP जाँच योग्य नहीं है NULL

उदाहरण के लिए

$baz = null;
var_dump(isset($baz));        -> false

तो, हम इसे जावास्क्रिप्ट में शामिल कर सकते हैं तो यह इस तरह दिखता है:

if (typeof some_var !== 'undefined' && some_var !== null) {
   // your code here
}


0

ES6 में सावधान रहें , पिछले सभी समाधान काम नहीं करते हैं यदि आप एक लेट वेरिएबल के डिक्लेरेशन की जांच करना चाहते हैं और यदि नहीं करते हैं तो इसे घोषित कर सकते हैं।

उदाहरण

let myTest = 'text';

if(typeof myTest === "undefined") {
    var myTest = 'new text'; // can't be a let because let declare in a scope
}

आपको एक त्रुटि दिखाई देगी

अनकंट्रेक्ट सिंटेक्सऑरर: आइडेंटिफायर 'मायटेस्ट' पहले ही घोषित किया जा चुका है

इसका समाधान एक संस्करण द्वारा इसे बदलना था

var myTest = 'text'; // I replace let by a var

if(typeof myTest === "undefined") {
    var myTest = 'new text';
}

एक अन्य समाधान यदि आप किसी संस्करण द्वारा लेट को बदल सकते हैं, तो आपको अपना संस्करण हटाने की आवश्यकता है

let myTest = 'text';

if(typeof myTest === "undefined") {
    myTest = 'new text'; // I remove the var declaration
}

-1
    isset('user.permissions.saveProject', args);

    function isset(string, context) {
        try {
            var arr = string.split('.');
            var checkObj = context || window;

            for (var i in arr) {
                if (checkObj[arr[i]] === undefined) return false;
                checkObj = checkObj[arr[i]];
            }

            return true;
        } catch (e) {
            return false;
        }
    }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.