SyntaxError: отсутствует имя после оператора .
JavaScript-исключение "missing name after . operator" (отсутствует имя после оператора .) возникает, когда есть проблема с использованием оператора точки (.) для доступа к свойствам.
Сообщение
SyntaxError: missing name after . operator (Firefox) SyntaxError: Unexpected token '['. Expected a property name after '.'. (Safari)
Тип ошибки
Что пошло не так?
Оператор точки (.) используется для доступа к свойствам. Вам нужно указать имя свойства, к которому вы хотите получить доступ. Для вычисляемого доступа к свойствам вам, возможно, потребуется изменить доступ к свойству с использования точки на использование квадратных скобок. Это позволит вам вычислять выражения. Возможно, вы хотели выполнить конкатенацию? В этом случае нужен оператор плюс (+). Пожалуйста, см. примеры ниже.
Примеры
Доступ к свойствам
Доступ к свойствам в JavaScript осуществляется либо с помощью точки (.), либо с помощью квадратных скобок ([]), но не обоих. Квадратные скобки допускают вычисляемый доступ к свойствам.
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
Чтобы исправить этот код, вам нужно получить доступ к объекту следующим образом:
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"
Доступ к свойствам против конкатенации
Если вы пришли из другого языка программирования (например, PHP), легко спутать оператор точки (.) и оператор конкатенации (+).
console.log("Hello" . "world");
// SyntaxError: missing name after . operator
Вместо этого для конкатенации нужно использовать знак плюс:
console.log("Hello" + "World");
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Missing_name_after_dot_operator