SyntaxError: . 运算符后缺少名称
JavaScript 异常 "在 . 运算符后缺少名称" 发生在使用点运算符 (.
) 进行 属性访问 时出现问题。
消息
SyntaxError: missing name after . operator (Firefox) SyntaxError: Unexpected token '['. Expected a property name after '.'. (Safari)
错误类型
出了什么问题?
点运算符 (.
) 用于 属性访问。您需要指定要访问的属性的名称。对于计算属性访问,您可能需要将属性访问从使用点更改为使用方括号。这将允许您计算表达式。您可能想进行连接而不是?在这种情况下,需要加号运算符 (+
)。请参见下面的示例。
示例
属性访问
属性访问器 在 JavaScript 中使用点 (.) 或方括号 ([]
),但不能同时使用两者。方括号允许计算属性访问。
js
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
要修复此代码,您需要像这样访问对象
js
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),也很容易将点运算符 (.
) 和连接运算符 (+
) 混淆。
js
console.log("Hello" . "world");
// SyntaxError: missing name after . operator
相反,您需要使用加号进行连接
js
console.log("Hello" + "World");