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"
// or alternatively
obj["foo"]["bar"]; // "baz"

// computed properties require square brackets
obj.foo["bar" + i]; // "baz2"

属性访问与字符串拼接

如果你是中其他编程语言(如 PHP)转到 JavaScript 的,很容易将点操作符 (.) 与连接操作符 (+) 混用:

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

// SyntaxError: missing name after . operator

相反要使用加号来进行字符串拼接:

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

相关页面