Javascript 解构es6导出是否为有效语法?

Javascript 解构es6导出是否为有效语法?,javascript,ecmascript-6,Javascript,Ecmascript 6,我想知道以下语法: export const { foo, bar } = { foo: 123, bar: 234, } 我找不到任何es2015中描述的,但确实如此 正如巴贝尔所想,这种语法真的是标准的吗?超出标准?这里发生了几件事 export const { foo, bar } = { foo: 123, bar: 234, }; 相当于 const { foo, bar } = { foo: 123, bar: 234, }; // Export all

我想知道以下语法:

export const { foo, bar } = {
  foo: 123,
  bar: 234,
}
我找不到任何es2015中描述的,但确实如此


正如巴贝尔所想,这种语法真的是标准的吗?超出标准?

这里发生了几件事

export const { foo, bar } = {
  foo: 123,
  bar: 234,
};
相当于

const { foo, bar } = {
  foo: 123,
  bar: 234,
};

// Export all the names in the variable declaration.
export { foo as foo, bar as bar };
export
可用于许多声明,并将导出该声明创建的任何变量

然后,如果您不了解解构,这将进一步简化,它本质上是

const _tmp = {
  foo: 123,
  bar: 234,
};
const foo = _tmp.foo,
      bar = _tmp.bar;

// Export all the names in the variable declaration.
export { foo as foo, bar as bar };

关于MDN,请参见。对于ES6文档,您最好的选择是MDN,尽管对于更完整(尽管更密集)的阅读,您可以看到:也许我没有看到它,但我不知道这涉及到模块导出的哪些方面?(回复@abhishekkannojia)@noahnu-MDN没有解决这个问题。ECMA文档引用“导出声明”作为有效语法。但我不确定声明是否包含解构赋值。我相信它使用的是“export VariableStatement”