为什么 JS 解构赋值与数字一起工作
Why does JS desctructuring assignment work with numbers
正如标题所说,为什么这段代码没有抛出SyntaxError?我以为你只能解构 Objects
const {
a,
b
} = 0;
console.log(a, b); // undefined, undefined
当您访问原语的 属性 时,原语的对象包装器用于查看原型上是否存在这样的 属性。例如,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);
这不是语法无效,只是真的很奇怪。
正如标题所说,为什么这段代码没有抛出SyntaxError?我以为你只能解构 Objects
const {
a,
b
} = 0;
console.log(a, b); // undefined, undefined
当您访问原语的 属性 时,原语的对象包装器用于查看原型上是否存在这样的 属性。例如,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);
这不是语法无效,只是真的很奇怪。