JSFiddle - React, Tailwind, and code Playground
JavaScript
function isDefined(strExp) {
var exp = strExp.split('.');
if (!/^[a-z][a-z0-9_]+$/i.test(exp[0])) {
console.log('failed 1');
return false;
};
var obj;
try { obj = eval(exp[0]); } catch(ex) {
return false;
}
var typeOfObj = typeof obj;
if (typeOfObj === 'undefined' || obj === null) {
return false;
}
for(var i = 1; i < exp.length; i++) {
obj = obj[exp[i]];
typeOfObj = typeof obj;
if (typeOfObj === 'undefined' || obj === null) {
return false;
}
}
return true;
}
var abc = { testing: { thisthing : null } };
console.log(isDefined('window.document'));
console.log(isDefined('abc.testing.thisthing'));