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没有改变,这是为什么啊,啥原理
其实就是
export
和export default
的不同export default
的本质就是将变量的值赋值给default
所以导出的其实是default
这个变量,你定义的变量a
是基本数据类型,所以就不影响的export
是直接导出变量,修改就会影响了