首页 > 解决方案 > Javascript - 'import' 和 'export' 语句在哪里合法?

问题描述

我正在研究 Javascript 中的新功能importexport但想知道,这些语句在代码中的哪里在语法上是合法的?

我了解以下内容是不合法的:

(功能(){

    从'./thing.js'导入东西;

})();

但这是否意味着import仅在模块脚本的顶部是合法的?还是在全球范围内?例如,这个呢:

从'./a.js'导入一个;

(功能(){

    // ... 用 ... 做某事

})();

从'./b.js'导入b;

// ...

此外,此限制是否适用于export?例如,以下内容是否合法?

(功能(){

    函数内部函数(){
        // ...
    }

    导出 { 内部函数 };

})();

在当前的规范草案中,我似乎找不到任何关于此的内容。

标签: javascriptimportmodule

解决方案


javascript中没有这样的实现。这是计划好的。但是还没有浏览器实现它。它在 Webpack 和 Babel 等一些转译器中实现。NodeJs 中也有 require 。但不是原生的javascript。导入文件的其他方法是使用 RequireJS 库。

参考:https ://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/import

编辑

回答您在评论中提出的问题:AFAIU 在已经可用的导入和导出实现中,是的,它们在全局空间中可用,是的,导入和导出已被提升。但是,您的评论问题中不太清楚的是您所说的“仅在全球空间中可用”是什么意思。不存在无法访问全局空间的封闭空间。全球空间无处不在,进出口也是如此。


推荐阅读