ES6的默认导出值没法改变,普通导出可以改变,怎么解释?

index.js

import * as x from './menu'
console.log(x.a)
console.log(x.default)
setTimeout(function () {
    console.log(x.a)
    console.log(x.default)
},3000)

menu.js

let b;
export let a = 1
export default b  = 2

setTimeout(function () {
    a = 10
    b =10
})

3秒后导出的a是收到影响了,可是default没有改变,这是为什么啊,啥原理

阅读 3.9k
1 个回答

其实就是 export export default 的不同

export default 的本质就是将变量的值赋值给default 所以导出的其实是 default 这个变量,你定义的变量 a 是基本数据类型,所以就不影响的

export 是直接导出变量,修改就会影响了

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