Spec-Zone.ru › JavaScript

SyntaxError: отсутствует имя после оператора .

JavaScript-исключение "missing name after . operator" (отсутствует имя после оператора .) возникает, когда есть проблема с использованием оператора точки (.) для доступа к свойствам.

Сообщение

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

Тип ошибки

SyntaxError

Что пошло не так?

Оператор точки (.) используется для доступа к свойствам. Вам нужно указать имя свойства, к которому вы хотите получить доступ. Для вычисляемого доступа к свойствам вам, возможно, потребуется изменить доступ к свойству с использования точки на использование квадратных скобок. Это позволит вам вычислять выражения. Возможно, вы хотели выполнить конкатенацию? В этом случае нужен оператор плюс (+). Пожалуйста, см. примеры ниже.

Примеры

Доступ к свойствам

Доступ к свойствам в 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API