SyntaxError: missing name after . operator

JavaScript の例外 "missing name after . operator" は、プロパティアクセスのためのドット演算子 (.) の使い方に問題があった場合に発生します。

エラーメッセージ

js
SyntaxError: missing name after . operator

エラータイプ

何がうまくいかなかったのか?

メンバー演算子に対して、ドット演算子 (.) が使われました。アクセスしたいプロパティ名を指定しなければなりません。計算されたプロパティアクセスのためには、プロパティアクセスをドットを使用したものから角括弧を使用したものに変更する必要があります。それにより、式を計算できるようになります。そうではなく、連結しようとしましたか? その場合は、プラス演算子 (+) を代わりに使用してください。以下の例をご覧ください。

プロパティアクセス

JavaScript のメンバー演算子は、ドット (.) か角括弧 ([]) を使用しますが、両方は使いません。角括弧で計算されたプロパティアクセスができます。

js
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

このコードを修正するには、次のようにオブジェクトにアクセスする必要があります。

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

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

プロパティアクセスと連結

(PHP のような) ほかの言語から来た人なら、ドット演算子 (.) と連結演算子 (+) を混同しがちです。

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

// SyntaxError: missing name after . operator

連結のためにはプラス記号を使用してください。

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

関連項目