关于es6的导出的疑惑?

为什么在模块化导出的时候 export {name:'234'}这样不可以呢?

一定要var a = {name: '234'} export {a}才可以呢

阅读 3k
5 个回答

同楼上,意思是说,es6标准里面,导出只能作用在"标识名"上。也就是变量名或者常量之类的。

export {a: 1};

这样后面的{a: 1},这个对象是叫"字面量"。和标识名是不同的东西。

http://es6.ruanyifeng.com/#do...

{name:'123'}js对象的语法,并不是es6 module的导出语法
export 语法:
export { a , b }或者 export { a as c , b } 或者 export const a = 1

export default是可以导出一个js对象的

export default {name:'123'}

import a from './xx.js'
console.log(a) // {name:'123'}

同样 import { a } from './xx.js'这里 的大括号也不是 es6 的 解构

标准上写的一清二白的,链接,这个 ExportSpecifier 只能是 IdentifierName 或者 IdentifierName as IdentifierName 的形式,你提及的这个形式不符合这两者,因此不合法。这是规定,是标准,并不因个人喜好和意愿而改变。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题