正如标题所说,为什么这段代码不会抛出 SyntaxError?我以为你只能解构对象
const {
a,
b
} = 0;
console.log(a, b); // undefined, undefined
最佳答案
当您访问基元的属性时,基元的对象包装器用于查看原型(prototype)上是否存在这样的属性。例如,Number.prototype.toFixed
存在。所以理论上你可以做类似的事情
const {
toFixed
} = 0;
console.log(toFixed);
或者
Number.prototype.a = 'foo'; // just for example, please never do this
Number.prototype.b = 'bar';
const {
a,
b
} = 0;
console.log(a, b);
这不是无效的语法,它真的很奇怪。
关于javascript - 为什么 JS 解构赋值对数字起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68165421/