SyntaxError: missing name after . operator(отсутствует имя после. оператора)
Сообщение
SyntaxError: missing name after . operator
Тип ошибки
Что пошло не так?
Оператор точки (.) используется для доступа к свойству. Необходимо указать имя свойства, к которому требуется получить доступ. Для доступа к вычисляемому свойству может потребоваться изменить доступ к свойству с точки на квадратные скобки. Это позволит вычислить выражение. Может быть, вы собирались сделать конкатенацию вместо этого? В этом случае необходим оператор plus ( + ). См. примеры ниже.
Примеры
Доступ к свойствам
Методы доступа к свойствам в JavaScript используют точку (.) или квадратные скобки ([]), но не оба. Квадратные скобки обеспечивают доступ к вычисляемым свойствам.
var obj = { foo: { bar: "baz", bar2: "baz2" } };
var i = 2;
obj.[foo].[bar]
// SyntaxError: отсутствует имя после оператора .
obj.foo."bar"+i;
// SyntaxError: отсутствует имя после оператора .
Чтобы исправить этот код, необходимо получить доступ к объекту следующим образом:
obj.foo.bar; // "baz"
//или же
obj["foo"]["bar"]; // "baz"
//вычисляемые свойства требуют квадратных скобок
obj.foo["bar" + i]; // "baz2"
Доступ к свойствам против конкатенации
Если вы пришли из другого языка программирования (например, PHP), также легко перепутать оператор точки (.) и оператор конкатенации (+).
console.log("Hello" . "world");
// SyntaxError: missing name after . operator
Вместо этого необходимо использовать знак плюс для объединения:
console.log("Hello" + "World");
Смотрите также
- Property accessors(доступ к свойствам)