Meldung

SyntaxError: missing name after . operator

Fehlertyp

SyntaxError

Was ist falsch gelaufen?

Der Punktoperator (.) wird für den Zugriff auf Eigenschaften genutzt. Man muss den Namen der Eigenschaft spezifizieren, auf dei man zugreifen möchte. Um berechnete Eigenachaftsnamen 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

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
 Mitwirkende an dieser Seite: schlagi123
 Zuletzt aktualisiert von: schlagi123,