输出导入的数据显示undefined

img

img

img

img


为什么导入数据后输出的是undefined?只输出接收的对象可以输出导入的数据

这是模块彼此依赖,导致加载顺序先后产生的问题。在ES6中,import语句会提升。在你这个情况中,在38_1.js中导入了38_2.js,所以在执行38_1.js之前,会先加载并执行38_2.js,而这个时候,fla和i的值还没有被赋值,所以是undefined。如果你在38_1.js中去掉import {abc } from '38_2.js',就不会存在这个问题。
如果还想更加深入理解这个问题,可以去了解一下javascript中的执行上下文的创建与执行过程。
(码字不易,若有用,望采纳)

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7485395
  • 你也可以参考下这篇文章:我可以将变量设置为undefined或将undefined作为参数传递吗?
  • 除此之外, 这篇博客: 前端面试题八股文汇总(最新)中的 7.如何获取安全的undefined 值? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    因为 undefined 是一个标识符,不是保留字,所以可以被当作变量来使用和赋值, 但是这样会影响 undefined 的正常判断。表达式 void ___ 没有返 回值,因此返回结果是 undefined。void 并不改变表达式的结果, 只是让表达式不返回值。因此可以用 void 0 来获得 undefined。

    void后跟一个表达式 void(expression),他会执行这个表达式,然后返回undefined
    可以使用void 0来代替undefined,因为undefind不是保留字。所以在某些浏览器下,undefind的值可能会被修改。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^