首页 > 解决方案 > ES6 模块:函数和变量在全局空间中不可用吗

问题描述

是模块的 ES6 部分中的所有内容。例如。如果我写在一个文件中。

function simpleFunc(){
 console.log("test")
}

此功能是否不可用于其他地方的代码。在常规 javascript 中,也可以从 html 脚本中执行此函数。

模块的整体概念是什么。我知道污染全局命名空间是一种不好的做法,但是当我们导出函数或常量时,它只是避免污染全局命名空间的一种方法。开发者还可以写var a= 10在一个js文件中,浪费所有维护模块的努力吗?我想这仍然是可能的,因为 es6 应该与 js 向后兼容。

简单来说,我的问题归结为:当语言为 ES6 时,js 文件是否不同。

标签: es6-modules

解决方案


不知道为什么还没有人回答这个问题,这是一个简单的答案,所以我会回答它以防其他人偶然发现它:

JavaScript 就是 JavaScript。

ES5 实践在脚本放置方面仍然适用于 ES6。模块化允许您将代码从一个脚本导入到另一个 - 这可以帮助您保持大型应用程序的可维护性以及许多其他结构优势。此外,您对不污染全局命名空间是正确的 - 模块也是命名空间容器,它保护了全局命名空间。

这是对模块重要性的良好(完整)解释的引述:

模块化是任何软件开发的基本必要条件。将事物分解成更小的功能块使我们能够重用代码。模块也是命名空间的容器。


推荐阅读