javascript - What is the difference between a js file and a js module?
问题描述
I tried to search, but cannot find precise / concise answer to this question. It appears to be used loosely and interchangeably, IMO. Anyone can teach me?
解决方案
好问题!
背景:JavaScript 文件过去非常小,但随着 JavaScript 语言变得越来越流行,JavaScript 文件变得如此之大,以至于引入了“模块”来帮助将 JavaScript 代码分解成更小、更易于管理的部分。
那么这是什么意思?
简而言之,模块是一个 javascript 文件,它被结构化为更小、更易于管理的文件大小。
这是一篇关于 MDN Web Docs 的更详细的文章:
https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules
在下面的示例中,main.js 是一个不是模块的 javascript 文件,但 canvas.js 和 square.js都是javascript 模块。所有 3 个都是 javascript 文件,但 canvas 和 square 被分解成它们自己的文件以便更易于管理。
示例:
index.html
main.js
modules/
canvas.js
square.js
这是上面示例的 Github 上代码的链接: https ://github.com/mdn/js-examples/tree/master/modules/basic-modules
推荐阅读
- python - 从大于 2 维的 numpy 数组中选择随机窗口
- asp.net-core - 服务定位器模式与服务聚合工厂的继承
- ios - Avoid rotation of one view in viewcontroller with orientation change
- javascript - Heroku 在 nodejs 应用程序上构建失败,我该如何解决?
- python - 更改模板标签中的表单名称而不影响 django 中的 models.py
- flutter - 实施 CupertinoActionSheet 的正确方法是什么?
- angular - @Input=Function(Params1,Params2) 总是在单击任何位置 Angular 时调用
- javascript - 格式化输入数组,结果应该是Angular中以下给定格式的分组数组
- javascript - 如何根据每个对象中的字符串属性数组深入比较/匹配数组中的对象?
- python - Python:如何快速创建仅包含大型 Excel 工作表中特定列的 pandas 数据框?