为什么 `export default const ` 无效?

发布于 2022-09-05 07:54:27 字数 452 浏览 22 评论 0

两种 export 方式

export default const a = 1

const a = 1
export default a

为什么前者这样无效,而后者却可以?

该问题与 stackoverflow 上的一个问题类似。但是因为水平原因,没有理解。

追加问题:

export {
    a: 1,
}

为什么这样又不可以?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

街角卖回忆 2022-09-12 07:54:27

stackoverflow 上说了,const/let是ES6关键字,如果default后跟const之类的关键字是不符合的,

ES6规范中标记出了default后面能带的参数

坠似风落 2022-09-12 07:54:27
export {
    a: 1,
}

export命令输出的是接口,可以动态的获取模块内部的值,具体可以来说可以是变量,函数或class的,但是你上面那种方式直接导出一个确切的对象,换成下面这中方式是可以的,因为其他模块引入这个文件,使用这个接口获取到a的值是动态的

var a=1;
export {
    a
}
那请放手 2022-09-12 07:54:27

默认导出不需要形参, 只要实参就行了

混浊又暗下来 2022-09-12 07:54:27

babel playground转化后的代码
image.png

module文件导出的实际上是exports对象
export 后需要一个key将val绑定在exports对象上, 因此用一个声明语句得到key和val

expord default 已经指定了key为default, 所以后面只能跟一个值表达式

同理一下 export default都是合法且等效的

export default 42

export default n = 42

export default +function(){ return 42 }()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文