【发布时间】:2019-11-14 00:38:32
【问题描述】:
如果我有这段代码(它使用解构),它似乎正在创建新变量ss 和pp。
但是这些的范围是什么?它们是作为var 还是let 变量创建的?
它们是函数作用域还是块作用域?
let config = {
server: 'localhost',
port: '8080',
timeout: 900,
};
/* no let or var here */ ({server : ss, port : pp} = config);
console.log(ss, pp);
我的问题与建议的问题不重复。我知道var,如果你忽略它会发生什么。我在这里寻找的真正答案是 Barmar 提供的答案。我只是不确定解构赋值的行为是否完全与普通赋值相同,或者在后台它假定 var(函数)或 let(块)范围。就这样。在提出另一个问题多年后,JS 中引入了解构。因此,假设解构赋值可能与通常的赋值有一些不同的语义是合乎逻辑的。正如 Barmar 所证实的,事实并非如此,所以我已经准备好了。
【问题讨论】:
标签: javascript