V. 7.2.1 (19.08.10)

Infos

Download

Theorie JavaScript

Schnellsuche

JavaScript - Grundlagen - Bedingungen und Schleifen

1. Bedingungen

Hier muss ich eigentlich garnichts dazu sagen, da die Bedingungen in PHP und JavaScript identisch sind. Der Übersichtlichkeit halber liste ich sie noch mal kurz auf.

Obacht!

In PHP kann man sowohl else if als auch elseif schreiben. In JavaScript nicht! Da gibt es nur ein else if. Also immer schön ein Leerzeichen dazwischen setzen.

2. Schleifen

Hier gilt (fast) dasselbe wie bei den Bedingungen. Es gibt auch in JavaScript die for-, while- und do while-Schleife. Allerdings gibt es zwei Unterschiede.

foreach

Diese Schleife zur Verarbeitung von Arrays existiert zwar in JavaScript, aber leider erst ab der Version 1.7. Und das bedeutet, dass man sie vergessen kann, da einige Browser noch nicht so weit sind. Stattdessen gibt es eine Alternative.

for ... in

Dies ist das Pendant zu foreach in PHP und funktioniert fast genau so. Die erste Variable bla beinhaltet dann die Indizes des Arrays blubb. Und so kann man Letzteres problemlos durchlaufen.


var blubb = new Array ();
blubb['bla']     = 'Laber';
blubb['schwall'] = 'Sülz';
blubb['kräh']    = 'Jodelbla';
for (
bla in blubb)
{
  
alert (bla '-' blubb[bla]);    
}

for-Schleifen

Hier muss man auf eine Sache höllisch aufpassen. Und zwar auf die Definition der hochzählenden Variable. In PHP funktioniert folgender Code einwandfrei.


<?php
  $bla  
= array ('blubb''blubber''schwall''laber');
  
$find = array ('dumdidum''blubb''jodelblah');
  
  for (
$i 0$i count($find); $i++)
  {
    if (
'blubb' == $find[$i])
    {
      
gotcha ($bla$find[$i]);
    }
  }
  function 
gotcha ($values$hit)
  {
    for (
$i 0$i count($values); $i++)
    {
      if (
$values[$i] == $hit)
      {
        echo 
'gefunden';
        break;
      }
    }
  }
?>

In JavaScript nicht!

Bei folgendem Code erzeugt ihr eine Endlosschleife und müsst eurem Browser abschießen, damit ihr ihn wieder nutzen könnt.


<script type="text/javascript">
  
bla  = new Array ('blubb''blubber''schwall''laber');
  
find = new Array ('dumdidum''blubb''jodelblah');
  
  for (
0find.lengthi++)
  {
    if (
'blubb' == find[i])
    {
      
gotcha (blafind[i]);
    }
  }
  function 
gotcha (valueshit)
  {
    for (
0values.lengthi++)
    {
      if (
values[i] == hit)
      {
        
alert ('gefunden');
        break;
      }
    }
  }
</script>

Erläuterung

Auf die Feinheiten möchte ich hier noch nicht eingehen. Aber der folgende Hinweis sei mir gestattet, da er ein klassischer Anfängerfehler ist. Von PHP ist man es gewöhnt, dass normale Variablen in einer Funktion immer nur einen lokalen Geltungsbereich haben. Und leider vergisst man, dass es in JavaScript anders ist. Darum sollte man hier bei Schleifen immer mit einem var arbeiten. Denn dann hat man die Funktionsweise von PHP.


<script type="text/javascript">
  ...
  for (var 
0find.lengthi++)
  {
    ...
  }
  function 
gotcha (valueshit)
  {
    for (var 
0values.lengthi++)
    {
      ...
    }
  }
</script>

weiter zum nächsten Abschnitt