SyntaxError: missing name after . operator

Die JavaScript-Ausnahme "missing name after . operator" tritt auf, wenn es ein Problem mit der Verwendung des Punktoperators (.) für den Eigenschaftszugriff gibt.

Meldung

SyntaxError: missing name after . operator (Firefox)
SyntaxError: Unexpected token '['. Expected a property name after '.'. (Safari)

Fehlertyp

Was ist schiefgelaufen?

Der Punktoperator (.) wird für den Eigenschaftszugriff verwendet. Sie müssen den Namen der Eigenschaft angeben, auf die Sie zugreifen möchten. Für berechneten Eigenschaftszugriff müssen Sie möglicherweise Ihren Eigenschaftszugriff von der Verwendung eines Punktes auf die Verwendung von eckigen Klammern ändern. Diese erlauben es Ihnen, einen Ausdruck zu berechnen. Vielleicht wollten Sie stattdessen eine Verkettung durchführen? In diesem Fall wird ein Plusoperator (+) benötigt. Bitte sehen Sie sich die untenstehenden Beispiele an.

Beispiele

Eigenschaftszugriff

Eigenschafts-Accessoren in JavaScript verwenden entweder den Punkt (.) oder eckige Klammern ([]), aber nicht beides. Eckige Klammern erlauben berechneten Eigenschaftszugriff.

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

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

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

Um diesen Code zu korrigieren, müssen Sie auf das Objekt wie folgt zugreifen:

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

// computed properties require square brackets
obj.foo["bar" + i]; // "baz2"
// or as template literal
obj.foo[`bar${i}`]; // "baz2"

Eigenschaftszugriff vs. Verkettung

Wenn Sie aus einer anderen Programmiersprache (wie PHP) kommen, ist es ebenfalls leicht, den Punktoperator (.) und den Verkettungsoperator (+) zu verwechseln.

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

// SyntaxError: missing name after . operator

Stattdessen müssen Sie ein Pluszeichen für die Verkettung verwenden:

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

Siehe auch