Javascript 正在分解属性名称中包含连字符的对象

Javascript 正在分解属性名称中包含连字符的对象,javascript,Javascript,是否有方法对属性名称中带有连字符的对象进行分解。这样做时,我得到了一个SyntexError(这是合理的,因为JS不允许变量名带有连字符) let human={ “名字”:“约翰”, “姓氏”:“Doe”, 年龄:150 } 让{age}=人; //让{“first name”}=人//错误 //让{first name}=人//错误 console.log(age)您可以为属性名添加别名 代码不适用于您的原因是,first name在Javascript中不是有效的变量名,因为它在cons

是否有方法对属性名称中带有连字符的对象进行分解。这样做时,我得到了一个
SyntexError
(这是合理的,因为JS不允许变量名带有
连字符)

let human={
“名字”:“约翰”,
“姓氏”:“Doe”,
年龄:150
}
让{age}=人;
//让{“first name”}=人//错误
//让{first name}=人//错误

console.log(age)
您可以为属性名添加别名


代码不适用于您的原因是,
first name
在Javascript中不是有效的变量名,因为它在
console.log(first name)
期间将其视为减号运算符而不是连字符。因此,修复方法可能是将对象属性重命名为
first\u name
,并在其他地方使用它

let human={
“名字”:“约翰”,
“姓氏”:“Doe”,
年龄:150
}
让{age}=人;
让{'first-name':first_-name}=human;

console.log(first_name)
以后如何访问变量?@NinaScholz类似于
窗口[“first name”]
?但我不确定,这就是我问的原因。我98.3%肯定不会得到任何答案(或我正在寻找的确切答案),但StackOverflow从未让我失望。
let human = {
  "first-name": "John",
  "last-name": "Doe",
  age: 150
};

let { age, "first-name": firstName } = human;
console.log(age, firstName);