Javascript 什么';CommonJS或ES6模块的意义何在?

Javascript 什么';CommonJS或ES6模块的意义何在?,javascript,Javascript,这听起来真的很愚蠢,但我真的没有答案 使用ES6模块或CommonJS(在使用browserifiy的浏览器中)有什么意义?如果您可以通过脚本标记将多个js文件连接到html,使它们充当模块(共享相同的范围)?在大小合适的web应用程序中,您必须考虑到不止一个开发人员正在处理该项目,因此,关注点分离是开发可维护应用程序的关键要素之一,下面是下一个假场景: 您的web应用程序中有一个名为library.js的文件。 ES2015模块语法 export function calculates

这听起来真的很愚蠢,但我真的没有答案


使用ES6模块或CommonJS(在使用browserifiy的浏览器中)有什么意义?如果您可以通过脚本标记将多个js文件连接到html,使它们充当模块(共享相同的范围)?

在大小合适的web应用程序中,您必须考虑到不止一个开发人员正在处理该项目,因此,关注点分离是开发可维护应用程序的关键要素之一,下面是下一个假场景:

您的web应用程序中有一个名为library.js的文件。 ES2015模块语法

    export function calculatesquareArea(object) {
        // code that calculates area
    }
    export function calculateVolume(object){
        // code that calculates volume
    }
现在我们通过如下操作将此模块导入到代码中:

import { calculatesquareArea } from 'library'
// We log the output of the execution of calculatesquareArea
console.log( calculateSquareArea(object))
您可以立即注意到,在我的模块中,我有两个函数,但我决定只导入一个,因为当时我只需要使用它。也许这是一个愚蠢的例子,但您可以用CommonJS或ES6模块的模块化特性来描述代码重用

关于CommonJS和ES2015模块之间的主要区别,有一篇更详细的文章


希望这有点帮助。

如果您可以将所有javascript代码放入项目中每个HTML文件的
script
标记中,那么多个js文件有什么意义呢?:)使用HTML标记的多个JS文件与模块不同。我建议在搜索“es6模块”时,阅读一些关于JavaScript模块的文章,例如,或任何最重要的结果。在处理更大的应用程序(应用程序,而不是带有JS的网站)时,让模块保持对所有内容的有序控制是非常重要的。谷歌是你的朋友:是的,我的意思是我明白了。但我和我的一个朋友只是在开发一个不大的应用程序,他不熟悉所有让你使用模块的技术(babel,browserify),他建议只使用多个脚本标签进行模块化。我们的程序并没有那么大,所以我们可以避免使用脚本的绑定,这些脚本是在某个脚本之后加载的,并且具有严格的文件序列。所以我想了一下,在我们的情况下,这可能是一个合理的解决方案。我完全理解你的观点,但最好在你的日常编码中有良好的实践,它会在以后自然地流动。始终尝试在可读性和适度冗长的代码之间取得平衡。