为了账号安全,请及时绑定邮箱和手机立即绑定

为什么import循环加载模块的变量显示undefined而不是not defined?

为什么import循环加载模块的变量显示undefined而不是not defined?

喵喔喔 2019-02-06 21:43:25
阮一峰教程:http://es6.ruanyifeng.com/#do...// a.mjsimport {bar} from './b';console.log('a.mjs');console.log(bar);export let foo = 'foo';// b.mjsimport {foo} from './a';console.log('b.mjs');console.log(foo);export let bar = 'bar';上面代码中,a.mjs加载b.mjs,b.mjs又加载a.mjs,构成循环加载。执行a.mjs,结果如下。$ node --experimental-modules a.mjsb.mjs ReferenceError: foo is not defined以上是教程内容。我在浏览器环境下实测是undefined,let不是没有变量声明提升吗?为什么会是undefined而不是not defined?我自己有两个猜测,但是都不太肯定,恳请指教一下
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

跟变量提升没有关系,ES6是动态引用,Node环境下的用的 CommonJS规范。

查看完整回答
反对 回复 2019-02-06
  • 1 回答
  • 0 关注
  • 1312 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信