碳60*_*碳60 7 javascript destructuring unexpected-token
假设我在es6中调用了这个语法:
let a, b;
{a, b} = { a: 100, b: 300 };
Run Code Online (Sandbox Code Playgroud)
代码将无错误地运行;
但是让我们改写是这样的:
function fn() {
return { a: 100, b: 200 }
}
let a, b;
{ a, b } = fn();
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,它会显示意外的令牌"="; 我有点困惑,有什么区别?
jok*_*awe 10
加圆括号: ({ a, b } = fn());
来自Mozilla文档:
在没有声明的情况下使用对象文字解构赋值时,赋值语句周围的圆括号(...)是必需的语法.
{a, b} = {a: 1, b: 2} 不是有效的独立语法,因为 {a, b} 左侧被视为块而不是对象文字.
但是 ({a, b} = {a: 1, b: 2}) ,原样是有效的 var {a, b} = {a: 1, b: 2}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
| 归档时间: |
|
| 查看次数: |
794 次 |
| 最近记录: |