SyntaxError: JS 中无效的速记属性初始值设定项
Invalid shorthand property initializer Error in JS
当我们使用等号而不是冒号来分隔对象中的键和值时,会发生“SyntaxError: Invalid shorthand property initializer”。
要解决该错误,请确保在对象的键和值之间使用冒号,例如const obj = {name: 'Tom', age: 30}
.
下面是错误如何发生的示例。
索引.js
// ⛔️ Uncaught SyntaxError: Invalid shorthand property initializer const obj = { name = 'Tom', // 👈️ should be : and not = age = 30, }
请注意,我们使用等号来分隔对象中的键值对
。
声明对象时,使用冒号分隔键值对。
索引.js
const obj = { name: 'Tom', age: 30, }; console.log(obj); // 👉️ {name: 'Tom', age: 30}
但是,如果要向对象添加新的键值对,则可以使用等号。
索引.js
const obj = { name: 'Tom', age: 30, }; obj.country = 'Chile'; console.log(obj); // 👉️ {name: 'Tom', age: 30, country: 'Chile'}
如果键包含空格或以数字或特殊字符开头,则必须使用括号表示法而不是点表示法向对象添加键值对。
索引.js
const obj = { name: 'Tom', age: 30, }; obj['street address'] = 'Example 1234'; // 👉️ {name: 'Tom', age: 30, 'street address': 'Example 123'} console.log(obj); console.log(obj['street address']); // 👉️ Example 123
使用点表示法访问对象属性更简洁,但有一些限制。
如果出现以下情况,您应该使用括号表示法:
- 键包含空格
- 键以数字或特殊字符开头
- 密钥包含连字符
结论
当我们使用等号而不是冒号来分隔对象中的键和值时,会发生“SyntaxError: Invalid shorthand property initializer”。
要解决该错误,请确保在对象的键和值之间使用冒号,例如const obj = {name: 'Tom', age: 30}
.