Hauptmenü

Untermenü

JavaScript - Grundlagen - Bedingungen und Schleifen

1. Bedingungen

Hier muss ich eigentlich gar nichts 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 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 euren 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>


zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt