Moin,
var text = "..." - ist einfach übersichtlicher.
Und bedeutet auch etwas anderes als einfach nur text = "...", und ist daher, wenn keine globalen Variablen benötigt werden, vorzuziehen.
Quark, DOM ist JS und wird damit dabei abgeschaltet.
Quark, DOM hat mit JS fast nichts zu tun, ausser dass es für das Document Object Model eben auch eine ECMA Script Anbindung gibt, wie beispielsweise für Java auch. http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001 ist eine recht aufschlußreiche Bettlektüre.
Zwei Sachen noch die bisher glaube ich nicht deutlich genug rausgekommen sind:
-document.write("<a href='link.html'>Link</a>")
^ ^
Das da ist falsch, in HTML dürfen Attributwerte nicht in einfache Anführungszeichen eingeschlossen werden.
-IF, THEN, ELSE: Diese Anweisung kann man in JavaScript auf zwei Arten umsetzen:
Nein, die beiden Beispiel die du gebracht hast, sind zwei unterschiedliche Sachen:
Beispiel: i > z ? i = 1 : i = 0
Das ist ein Ausdruck und kann überall verwendet werden wo ein Ausdruck stehen darf. Dafür darf vor, zwischen und nach den ? und : auch nur ein Ausdruck stehen.
oder if (i > z) { i = 1; } else { i = 0; }
Das da ist kein Ausdruck sondern einige Anweisungen umgeben von einer Kontrollstruktur. Das darf nicht überall stehen, dafür können die einzelnen Teile aber auch beliebige Anweisungen sein.
Was ist sinnvoller?
Es geht weniger darum was sinnvoller ist, sondern zunächst darum was an der entsprechenden Stelle erlaubt ist. Wenn denn beides erlaubt ist, kommt es drauf an was den Code einfacher zu lesen macht.
Bei i = (i>z) ? 1 : 0; würde ich mich wohl jederzeit für den trinären Operator (das ?:-Dings) entscheiden da hier ersichtlich wird, dass in jedem Fall eine Zuweisung an i erfolgt. (i>z) ? (i=1) : (z=1); stellt hingegen klar einen Missbrauch dieses Operators dar und sollte mit if geschrieben werden (abgesehen davon dass Seiteneffekte wie die Zuweisung an Stelle eines Ausdrucks bei diversen Leuten ungern gesehen werden).
--
Henryk Plötz
Grüße von der Ostsee