javascript - Javascript - 'import' 和 'export' 语句在哪里合法?
问题描述
我正在研究 Javascript 中的新功能import
,export
但想知道,这些语句在代码中的哪里在语法上是合法的?
我了解以下内容是不合法的:
(功能(){ 从'./thing.js'导入东西; })();
但这是否意味着import
仅在模块脚本的顶部是合法的?还是在全球范围内?例如,这个呢:
从'./a.js'导入一个; (功能(){ // ... 用 ... 做某事 })(); 从'./b.js'导入b; // ...
此外,此限制是否适用于export
?例如,以下内容是否合法?
(功能(){ 函数内部函数(){ // ... } 导出 { 内部函数 }; })();
在当前的规范草案中,我似乎找不到任何关于此的内容。
解决方案
javascript中没有这样的实现。这是计划好的。但是还没有浏览器实现它。它在 Webpack 和 Babel 等一些转译器中实现。NodeJs 中也有 require 。但不是原生的javascript。导入文件的其他方法是使用 RequireJS 库。
参考:https ://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/import
编辑
回答您在评论中提出的问题:AFAIU 在已经可用的导入和导出实现中,是的,它们在全局空间中可用,是的,导入和导出已被提升。但是,您的评论问题中不太清楚的是您所说的“仅在全球空间中可用”是什么意思。不存在无法访问全局空间的封闭空间。全球空间无处不在,进出口也是如此。
推荐阅读
- reactjs - 为什么 null React 组件状态初始化会得到`never` 类型?
- mysql - 从 --secure-file-priv 文件夹导入 mysqlimport,但仍然出现错误
- python - 使用 python 监控文本站点(json)
- ios - UINavigationBar & UITabBar 下的内容
- python - 在 tkinter 的同一窗口中插入打开的 cv 功能和旋转图像
- api - 在哪里获取 SIFT_WEBHOOK_SECRET_KEY 以供您做出 Sift Science 决策?
- java - 编写一个注释处理器以使所有方法 args 最终确定
- swift - Swift - 在类中引用类的类型
- ios - iOS(Swift):将缩放值表示为 UIColor
- r - 在 R 中创建稀疏矩阵