Wie kann man am besten überprüfen, ob eine Objekteigenschaft in JavaScript undefiniert ist?
Antworten
Zu viele Anzeigen?
DenisS
Punkte
1597
' if (window.x) { } ' ist fehlerfrei
Höchstwahrscheinlich wollen Sie if (window.x)
. Diese Prüfung ist auch dann sicher, wenn x nicht deklariert wurde ( var x;
) - der Browser gibt keine Fehlermeldung aus.
Beispiel: Ich möchte wissen, ob mein Browser History API unterstützt
if (window.history) {
history.call_some_function();
}
Wie das funktioniert:
Fenster ist ein Objekt, das alle globalen Variablen als seine Mitglieder enthält, und es ist legal, auf ein nicht vorhandenes Mitglied zuzugreifen. Wenn x nicht deklariert wurde oder nicht gesetzt wurde, dann window.x
gibt zurück. undefiniert . undefiniert führt zu falsch wenn if() wertet sie aus.
Ricky
Punkte
5275
sam
Punkte
38898
bevacqua
Punkte
45226
Anoop
Punkte
22416
Mit folgendem Code können Sie ein Array mit undefinierten Pfaden erhalten.
function getAllUndefined(object) {
function convertPath(arr, key) {
var path = "";
for (var i = 1; i < arr.length; i++) {
path += arr[i] + "->";
}
path += key;
return path;
}
var stack = [];
var saveUndefined= [];
function getUndefiend(obj, key) {
var t = typeof obj;
switch (t) {
case "object":
if (t === null) {
return false;
}
break;
case "string":
case "number":
case "boolean":
case "null":
return false;
default:
return true;
}
stack.push(key);
for (k in obj) {
if (obj.hasOwnProperty(k)) {
v = getUndefiend(obj[k], k);
if (v) {
saveUndefined.push(convertPath(stack, k));
}
}
}
stack.pop();
}
getUndefiend({
"": object
}, "");
return saveUndefined;
}
jsFiddle enlace