# Variable auf "undefined" prüfen?



## DataFox (13. Januar 2008)

Hi Leute

schon peinlich, aber irgendwie kriege ich es gerade nicht gerallt zu prüfen ob eine Variable nicht "undefined" ist. 

Mit


```
if(meineVariable) {
alert('ist definiert');
} else {
alert('ist nicht definiert);
}
```

müsste es doch eigentlich klappen, oder? Na ja, und wenn nicht, dann aber:


```
if(meineVariable != "undefined") {
alert('ist definiert: ' + meineVariable);
} else {
alert('ist nicht definiert: ' + meineVariable);
}
```

oder gibt es noch eine schlauere Methode dafür?

dieser code steht in einer Funktion, die in einer Sekunde 4 mal aufgerufen wird um etwas zu prüfen. Seltsamer weise passiert es, das ich "ist definiert" kriege obwohl die variable selbst "undefined" ist.

Oder der Wert ändert sich so schnell, das der JavaScript Interpreter (?) total verwirrt ist und da was verzettelt... hat jemand eine Idee?

Gruß
Laura


----------



## Sven Mintel (14. Januar 2008)

Um zu Prüfen, ob eine Variable(Objekte im Allgemeinen) existiert, prüfe ihren Typ:

```
if(typeof deineVariable!='undefined')alert('deineVariable='+deineVariable);
```
...hat ein Objekt auf das du zugreifen wilst, keinen definierten Typ, existiert es nicht(oder besitzt keinen Wert)....dies ist also eine sichere Methode, soetwas im Vorraus zu prüfen.
Vorsicht ist dabei jedoch geboten bei Dokument-Elementen.
Prüfst du bspw. soetwas:

```
typeof document.getElementById('dasgibtsnicht')
```
...wird dir das in jedem Fall das Vorhandensein melden, ob es nun da ist oder nicht, weil bereits *document.getElementById * ein Objekt vom Typ [object] darstellt.

Alternativ kannst du auch try/catch-Routinen verwenden:
	
	
	



```
try
  {
    alert('ist definiert: ' + meineVariable);
  } 
catch(e) 
  {
    alert('ist nicht definiert');
  }
```



Folgendes erzeugt Fehler, falls die Variable nicht existiert:
	
	
	



```
if(meineVariable)
```
...es  prüft, ob die Variable true ist
	
	
	



```
if(meineVariable != "undefined")
```
es prüft, ob die Variable nicht den Wert "undefined" hat(nicht existente Variablen haben keinen Wert)


----------

