Jeena Paradies: Trennung von Text und Variablen

Beitrag lesen

Hallo,

Grundsätzlich gilt in JavaScript dass das Zeichen + der Verknüpfungsoperator in ist. Damit kannst du dann z.b. Strings verknüpfen

row.innerHTML = "foo" + " " + "bar"; // ergibt "boo bar"

so machst du das ja auch in deinem ersten Beispiel :

var variable = 3;
var test = 'Text'+variable; // Ergebnis: Text3

auch wenn da in "variable" ein Integer drin ist, das macht aber nichts, denn JavaScript ist so "nett" dass es den Integer 3 in einen String "3" verwandelt bevor es den Operator + benutzt. Deshab kommt das raus was du haben wolltest.

''Text'+variable'; // so nicht

Hier hast du das Problem dass du mit '' erst einmal einen leeren String machst (das sind zwei ' ) und danach eine Variable Text (die nirgendwo definiert ist) verwendest. Man sieht das daran dass Text nicht innerhalb von Anführungszeichen ist (weil du nach dem öffnenden ' es gleich mit dem zweiten ' schließt), und JavaScript davon ausgehen muss dass Text ein Variablenname ist. Da diesem bisher nichts zugewiesen wurde ist da einfach ein undefined drin. Das problem ist jetzt dass JavaScript nicht weiß was es mit einem leeren String gefolgt von einer Variable anfangen soll wenn da kein Operator wie + oder so dazwischen steht. Deshalb wird es eine Syntax Error Exception werfen und dein script nicht weiter ausführen.

Was du warscheinlich machen wolltest war:

row.innerHTML = "Text" + variable;

'+'Text'+'+variable'; // so auch nicht nicht

Hier ein ähnliches Problem , erst sagst du es gibt einen String "+" dann steht dahinter direkt eine Variable Text die nirgendwo zugewiesen wurde. JavaScript weiß nicht was es machen soll wenn ein String gefolgt von einer Variable im Quelltext steht, ohne dass dazwischen ein Operator wie + steht und wirft eine "Syntax Error" Exception.

Also noch einmal, der Verkettungsoperator ist + in JavaScript, wenn man einen String deklarieren möchte dann umschließt man diesen mit einem Paar von quotes ' oder double quotes " so wie hier:

"foo"; // ein String  
foo; // eine Variable mit dem Namen foo

will man nun diese beiden verknüpfen macht man das mit +:

"foo" + foo;

will man das Ergebnis in eine Variable schreiben macht man:

var bar = "foo" + foo;

Hoffe damit werden die Unterschiede etwas klarer.

Jeena