SyntaxError: missing name after . operator

메시지

    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"
// 또는 대신에
obj["foo"]["bar"]; // "baz"

// 연산 프로퍼티는 대괄호가 필요합니다.
obj.foo["bar" + i]; // "baz2"

프로퍼티 접근 vs. 연결

다른 프로그램 언어를 사용하다 왔다면 ( PHP 같은), 점 연산자(.)와 연결 연산자(+)를 혼동해서 쓰기가 더 쉬울 것입니다.

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

// SyntaxError: missing name after . operator

대신에 결합을 위해서는 더하기 표식을 사용해야 합니다.:

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

참조