Javascript Prob

  • #1
J

jureg

Bekanntes Mitglied
Themenersteller
Dabei seit
22.01.2004
Beiträge
589
Reaktionspunkte
0
Ort
Kirkel
Hallo Leute,

ich habe da ein kleines Prob
Also die Grundkenntnisse von Javascript sind vorhanden.
Ich weiß also wie man Functionen erstellt, Verzweigungen und Schleifen verwendet und
die Methoden und Eigenschaften vorhandener Objekte einsetzt.
Aufgrund geringer Anwendung, bin ich jedoch noch kein Profi in diesem Bereich.
Nun habe ich eine Stelle in einem Script, die ich nicht richtig nachvollziehen kann.
Es handelt sich dabei um einen ganz einfachen Kalender wie in nachfolgenden Script ersichtlich.

Code:
 <script type=text/javascript>

function Wtagk(Datum)
{
 var Wtag=Datum.getDay();

 if (Wtag==1) return Mo;
 if (Wtag==2) return Di;
 if (Wtag==3) return Mi; 
 if (Wtag==4) return Do;
 if (Wtag==5) return Fr;
 if (Wtag==6) return Sa;
 if (Wtag==0) return So;
}


function Kalender()
{
 var Heute=new Date();
 var Monat=Heute.getMonth();
 var Jahr=Heute.getYear();
 var Text=;
 
 for (Tag=1; Tag<=7; Tag++)
 {
  Datum=new Date(Jahr,Monat,Tag);
  Text=Text+Wtagk(Datum)+\t;
 };

 Text=Text+\n+\n;
 
 for (Tag=1; Tag<=31; Tag++)
 {
  TDat=new Date(Jahr,Monat,Tag);
  if (TDat.getMonth()>Monat) break;
  Text=Text+TDat.getDate()+\t;
  if ((Tag%7)==0) Text=Text+\n;
 }
 
 alert(Text)
}

</script>

</head>

<body>

<script>
Kalender()
</script>

Dabei ist mir die Definition der Variable Text= unklar.
Wie kommt man auf diese Vorgehensweise?
Die Definition eines leeren Strings ist mir bisher nur von der Methode prompt des Windows-Objekts bekannt wie z:B.
Name= prompt (Bitte geben Sie ihren Namen ein: , ) wobei dann dieser leere String durch die Eingabe aufgefüllt und an die Variable Name übergeben wird.

Nach welcher Methode oder Eigenschaft, welchen Objektes wurde aber bei Text= vorgegangen?
Wo gibt es dafür die entsprechende Regeln?
Weder bei selfhtml,noch in meinen beiden Büchern, die ich dazu habe, bin ich fündig geworden.

Wer kennt sich jetzt so gut mit Javascript aus ,um mir dieses vorgehen zu erläutern.

Thx vorab

Gruß jureg
 
  • #2
Hi

Die Variable Text enthält ja einen String.
In den Schleifen wird nun über text = text + xyz etwas an diesen String drangehangen.
Programmiert man sauber geht man davon aus, dass man den ursprünglichen Inhalt von text nicht kennt, da es ja ein unbekannter Bereich des Speichers ist.
Damit vor dem String also nicht Reste aus dem Speicher stehen, initialsiert man die Variable mit einem Leerstring.

Gruß, Michael
 
  • #3
Danke für die prompte Antwort PCDReitz,

aber diese Definition muß auch noch einen anderen Sinn haben,
außer das Anzeigen von Speicherresten zu verhindern.
Wenn ich die erste Variable Text nicht definiere und mit dem Wert versehe und dann bei der Anweisung Text+ weglasse (also
nur Text=Wtagk usw) eingebe, erscheint in der ersten Zeile nur noch der letzte Tag, anstatt alle Wochentage.
Wie das nun zusammenhängt, ist mir unklar.
Außerdem müßte es doch eine Regel für dieses Vorgehen geben, oder es müßte eine Methode dazu existieren, oder?

Durch die Schleife und die Funktion Wtagk, müßten der Variablen Text im zweiten Schritt ja sowieso die einzelnen Strings Mo Di Mi usw zugeteilt werden.
Aber das funktioniert nur, wenn im ersten Schritt der Variablen Text dieser Leerstring zugeteilt wird.
Hab ich jetzt nur'n Brett vorm Kopp oder...?? :-[

Gruß jureg
 
  • #4
Hi

Wenn du das Text + weg lässt wird der Inhalt der Variable Text in jedem Schleifendurchlauf ja wieder überschrieben.
So steht dann nur der letzte Tag drin, weil der als letztes gesetzt wurde.

Gruß, Michael
 
  • #5
Maaannn bin ich blöd, natürlich. ;D
Hab gerade das Brett entfernt, dank Deines Tipp's
Man muß ja bei jedem Schleifendurchlauf die vorhergehende Variable Tag nochmal einsetzen, damit sie um den nächsten Wochentag ergänzt wird.
Deshalb auch die leere Variable, damit beim ersten Durchlauf kein undefined erscheint.

Danke für die Mühe, war sehr hilfreich.

Gruß jureg
 
Thema:

Javascript Prob

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben