Bei mir wars aber so:
alert("Hallo"); // wird ausgefuehrt
var foo = "bar"; // wird nicht ausgefuehrt
alert(foo); // wird nicht ausgefuehrt
var baz = fooo + "baz"; // erstes Auftreten von fooo, wird nicht ausgefuehrt
Das ist Quatsch, hast du das ausprobiert?
Ich bekomme alert[Hallo] und dann alert[bar] und dann Fehler: fooo is not defined
> > Warum fügst Du nicht jeden zusätzlichen Begriff in einer eigenen Zeile ein, etwa in der Form
> >
> > `+ trenner + "Begriff"`{:.language-javascript}
> >
...
> > Dein Code wäre wesentlich leichter lesbar, leichter wartbar und solche Fehler würden Dir sofort auffallen.
> Moeglich... ich habe immer Angst vor Zeilenumbruechen in Strings und allgemein mitten in JavaScript-Anweisungen, obwohl ja jedes white-space mehr oder weniger gleich behandelt werden sollte, oder?
Es geht nicht um Zeilenumbrüche im String, sondern das du den String lesbar verkettest. Zeilenumbrüche im String sind nicht erlaubt.
Vinzenz meint so was:
~~~javascript
var teil_1 = 'ein langer Text';
var teil_2 = 'und ncoh einer';
var gesamt = teil_1
+ ' hier kommt noch was'
+ ' und hier ebenfalls '
+ teil_2 + ' und so weiter und so fort'
;
Innerhalb der Anfürhrungszeichen dürfen natürlich keine Umbrüche sein.
Das ist ganz einfach: So wenig globale Variablen wie möglich, so viele wie nötig. Den Idealfall stellt keine globale Variable dar.
Latuernich. wenn ich den Inhalt ausserhalb des Blockes brauche, dann brauche ich ihn, und wenn nicht, dann nicht.
Du kannst auch Rückgabewerte definieren und Block ist falsch, JS kennt nur den Unterschied zwischen innerhalb einer Funktion und ausserhalb.
Ausserdem gibt es noch Objekte. Globale Variabel nur in Ausnahmefällen nötig, vor allem in kurzen Skripten.
So ist es z.B. zur Fehleranalyse gut, wenn fehlertraechtige Zaehler auch (temporaer) global sind. (Fuer onError-Fehlerbehandlung)
Das halte ich auch für Unsinn.
Bei Zählern kommt es in erster Linie auf die Grenzen an, die du überprüfen musst und innerhalb einer Schleife natürlich die Werte/Objekte/Funktionen aber ein Zähler muss immer lokal sein, gerade weil eine Konvention ist i zu benutzen. Falls du dann jemals eine Funktion inerhalb der Schleife aufrufst, die u.U. ebenfalls eine Schleife mit i erzeugt, hast du ein evtl. grosses Problem den Fehler zu finden.
Lokale Variabeln erleichtern dir die Arbeit, auch wenn es etwas mehr Tipparbeit ist, am Schluss bist du (vor alem wenn das Projekt gross ist) länger mit der Fehlersuche beschäftigt.
Struppi.