2016-12-07 3 views
0

Nun, meine Frage ist offensichtlich,Beste Möglichkeit, um zu überprüfen, ob eine Variable in Javascript vorhanden ist?

Beispiel:

definieren a mit Standardwert undefined:

var a; 

Wenn ich, wenn a var existiert überprüfen möchten mit Ich werde versuchen:

Aber in diesem Fall existiert a existiert und a Wert ist undefined, aber in der boolean evaluation das ist false.

var a; // default value is 'undefined' 
 
if (a) { 
 
    alert('a exists'); 
 
} else { 
 
    alert("a don't exists") 
 
}

ich auch mit dem folgenden Beispiel versuchen können, aber dieses Beispiel einen Fehler erzeugt.

// var a; 
 
// a is not defined 
 
if (a) { 
 
    alert('a exists'); 
 
} else { 
 
    alert("a don't exists") 
 
}

Und in diesem Beispiel versuche ich mit typeof. Aber a ist standardmäßig mit undefined Wert definiert.

var a; 
 
if (typeof a != 'undefined') { 
 
    alert('a exists'); 
 
} else { 
 
    alert("a don't exists") 
 
}

Und in diesem Beispiel

console.log ('var a exists:', window.hasOwnProperty('a'));

Was ist der beste Weg, wenn eine Variable existiert und tatsächlich zu überprüfen, warum?

Danke.

+2

Mögliche Duplikat [JavaScript überprüfen, ob Variable existiert (definiert/initialisiert)] (http://stackoverflow.com/questions/5113374/javascript-check-if-variable-exists -is-defined-initialized) – Dekel

+0

Wenn die Variable a standardmäßig nicht definiert ist, dann überprüfe (typeof a == "undefined"). – MCMXCII

+0

Für die erste, 'a === undefined'. Für die Sekunde benutze linters und beobachte deine Entwicklerkonsole, damit du Bugs reparieren kannst, bei denen du 'var a' vergessen hast. Verwenden Sie keine unnötigen 'typeof'-Hacks, die nützliche Fehlermeldungen verbergen und Fehler unbemerkt bleiben lassen. –

Antwort

3

In JS gibt es drei verschiedene Möglichkeiten für eine Variable.

  1. Variable 'a' gar nicht erklärt;
  2. Variable 'a' deklariert, aber nicht zugeordnet (undefiniert). Bsp .: var a;
  3. Variable 'a' deklariert, aber mit leer oder null zugewiesen. (Mögliches Szenario, wenn eine Variable zu bekommen Wert von Back-End-Versuch)
    Ex: var a=null; var a='';

Wenn Sie einen Wert in den Variablen, anders als 0 oder falsch erwarten, dann besser folgende Bedingung zu verwenden. Und natürlich basiert alles auf Ihrem Bedarf und wenn Sie sich über Variablen- oder Objektwerte nicht sicher sind, schließen Sie sie immer in try & catch block ein.

//var a; 
 
//var a=null; 
 
//var a=''; 
 
//var a=0; 
 
//var a='value'; 
 

 
if (typeof a != "undefined" && a) { 
 
    alert("a is defined AND a is TRUE value"); 
 
} else { 
 
    alert("a not exist OR a is a FALSE value"); 
 
}

Verwandte Themen