SyntaxError: missing name after . operator

Fehlermeldung

SyntaxError: missing name after . operator

Fehlertyp

Was ist falsch gelaufen?

Der Punktoperator (.) wird f├╝r den Zugriff auf Eigenschaften genutzt. Man muss den Namen der Eigenschaft spezifizieren, auf den man zugreifen m├Âchte. Um berechnete Eigenschaftsnamen zu benutzen muss statt dem Punkt eckige Klammern genutzt werden. Das erlaubt es einen Ausdruck zu berechnen. Manchmal m├Âchte man Konkatenation stattdessen erreichen. Daf├╝r wird ein Plusoperator (+) genutzt werden.

Beispiele

Zugriff auf Eigenschaften

Zugriff auf Eigenschaften wird in JavaScript entweder mit einem Punkt oder eckigen Klammern erreicht, aber nicht beides. Eckige Klammern erlauben es auch Eigenschaftsnamen zu berechnen.

var obj = { foo: { bar: "baz", bar2: "baz2" } };
var i = 2;

obj.[foo].[bar]
// SyntaxError: missing name after . operator

obj.foo."bar"+i;
// SyntaxError: missing name after . operator

Um das Problem zu l├Âsen, muss auf das Objekt wie folgt zugegriffen werden:

obj.foo.bar; // "baz"
// or alternatively
obj["foo"]["bar"]; // "baz"

// computed properties require square brackets
obj.foo["bar" + i]; // "baz2"

Zugriff auf Eigenschaften vs. Konkatenation

Wenn man aus einer anderen Programmiersprache kommt (z. B. PHP), ist es einfach den Punktoperator (.) und den Konkatenationsoperator (+) zu vermischen.

console.log("Hello" . "world");

// SyntaxError: missing name after . operator

Stattdessen muss man das Pluszeichen f├╝r Konkatenation benutzen:

console.log("Hello" + "World");

Siehe auch