为什么有不同的方式在JavaScript中导入模块?

用户名

我不确定在以下情况下导入JavaScript模块之间的区别:

  • 普通JS
  • ES5
  • ES6
  • 节点JS
  • 打字稿

为什么有这么多种方式导入javascript模块?在不同的实现中,“模块”的定义是否有所不同?是否都在做同一件事,但语法不同?

TJ人群

ES5及更早版本中没有模块。由于当时JavaScript中没有标准的模块系统,因此创建了各种模块系统(CommonJS,AMD以及Node.js和TypeScript中的类似CommonJS的系统),但这是一件非常有用的事情。因此,工具和工具构建者满足了需求。

ES2015(又名“ ES6”)为JavaScript中的模块创建了标准语法,现已被所有现代浏览器,Node.js和TypeScript所采用。该标准语法将模块标识符的语义留给宿主环境使用,因此Web社区的领导者必须就如何在浏览器中进行操作达成共识(而Node.js必须弄清楚如何在Node.js中进行操作)。等),因此在ES2015发布与您能够以本机使用该语法之间存在一些延迟(尽管Webpack,Rollup等已处理了该语法)。

在某些用例中,ES2015的静态语法不能完全解决问题,因此存在import()(动态导入)建议,该建议已在某些环境中得到支持,并将在ES2020中使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么不能在标准JavaScript中导入模块?

在Angular中导入组件和模块的最有效方式是什么?

在打字稿中导入库的不同方式有什么区别?

为什么不能在sys.path中导入模块?

为什么从同级包中导入模块被视为反模式?

无法在JavaScript中导入模块

Javascript模块导入失败-为什么?

为什么在“ __main__”中导入模块不允许多进程使用模块?

当未定义默认导出时,“模块”中的导入模块会导入什么?为什么它与作为模块导入*不同?

这些用 Webpack 导入模块的方式有什么区别?

在Firefox扩展中导入Javascript模块

为什么在“导入模块”和“从模块导入*”中,全局变量的行为不同?

如何模拟从不同模块导入的方法中导入的函数

从包中导入所有模块

为什么未在Python 3的“ sys.modules”中导入模块?

为什么我不能在PyCharm中导入两个模块?

为什么在main.js文件中导入了bootstrap模块?

为什么从定制模块导入的函数在JSfiddle中工作时行为会有所不同?

为什么从不同文件的类中导入方法对我不起作用?

为什么在vuejs中导入Twilio无效?

为什么注释符号在JavaScript中的计算方式有所不同?

为什么导入错误:没有名为lightgbm的模块

如何在不同文件中导入libs模块

在不同脚本中导入的Python日志记录模块

为什么向模块添加方法与添加子模块的处理方式不同?

在Haskell中导入模块

在python中导入模块

导入模块/功能的方式是什么?

为什么numpy导入的行为有所不同?