关于 import 提升,我们可以参考阮一峰的。

    import 命令具有提升效果,会提升到整个模块的头部,首先执行。

    上面的代码不会报错,因为 import 的执行早于 foo 的调用。这种行为的本质是,import 命令是编译阶段执行的,在代码运行之前。

    因此,即使我们把 import 语句写在后面,它仍然会在其他语句之前执行

    1. apikey: "API-KEY"
    2. })

    假设我们还需要 import 一个test.js文件,这个文件会抛出一个 Error,如下:

    一切看起来没有问题:

    1. import * as fundebug from "fundebug-javascript";
    2. fundebug.init({
    3. apikey: "API-KEY"
    4. import "./test";

    但是,根据 import 提升,代码的实际执行顺序如下:

    这种情况下,第二行代码就会抛出错误,导致 apikey 复制语句不会执行,从而导致报错:“请配置 apikey”。

    我们写这篇博客的目的仅仅是解释一下原因,并分享一个非常简单的知识点“import 提升”。

    仅供参考,实际上没有必要这样做。

    新建一个配置文件config.js,在这个文件中配置 apikey:

    1. fundebug.init({
    2. apikey: "API-KEY"

    import 配置文件:

    最后,感谢 Fundebug 用户龙哥的反馈和协助!