es6-modules - ES6 模块:函数和变量在全局空间中不可用吗
问题描述
是模块的 ES6 部分中的所有内容。例如。如果我写在一个文件中。
function simpleFunc(){
console.log("test")
}
此功能是否不可用于其他地方的代码。在常规 javascript 中,也可以从 html 脚本中执行此函数。
模块的整体概念是什么。我知道污染全局命名空间是一种不好的做法,但是当我们导出函数或常量时,它只是避免污染全局命名空间的一种方法。开发者还可以写var a= 10
在一个js文件中,浪费所有维护模块的努力吗?我想这仍然是可能的,因为 es6 应该与 js 向后兼容。
简单来说,我的问题归结为:当语言为 ES6 时,js 文件是否不同。
解决方案
不知道为什么还没有人回答这个问题,这是一个简单的答案,所以我会回答它以防其他人偶然发现它:
JavaScript 就是 JavaScript。
ES5 实践在脚本放置方面仍然适用于 ES6。模块化允许您将代码从一个脚本导入到另一个 - 这可以帮助您保持大型应用程序的可维护性以及许多其他结构优势。此外,您对不污染全局命名空间是正确的 - 模块也是命名空间容器,它保护了全局命名空间。
这是对模块重要性的良好(完整)解释的引述:
模块化是任何软件开发的基本必要条件。将事物分解成更小的功能块使我们能够重用代码。模块也是命名空间的容器。
推荐阅读
- java - 在 aws iot 中更新一个东西
- android - 系统对话框,如 ShowMessage,在 Android 上使用旧样式
- ruby - 由于以下原因返回 HTTP 503:请求队列已满(配置的最大大小:100)
- mysql - MySQL查询以查找表中不在列表中的ID
- html - 在 IOS 设备上自动缩放
- excel - 根据是条件将行数据从一个工作表复制到另一个工作表
- amazon-web-services - AWS Graphql 中的多对多关系问题
- docker - Docker 容器(用于弹性搜索)每次“[Qkskaso] 无法读取本地状态,正在退出...”时都会出现错误启动和退出
- android - 添加具有实时更新功能的 GeoJson(无跟踪)
- php - Mozilla Firefox 中的“资源被安全浏览阻止”问题