先有 CommonJS 还是 Node.js ?
是 Node.js 成就了 CommonJS ?
CommonJS 规范是 Node.js 作者创建的吗?
为什么大家谈到 CommonJS 就会涉及 Node.js,只是因为 Node.js 目前应用广泛?
虽然知道 CommonJS 规范的使用,但对于二者的关系不是很了解,一直很纳闷,去网上搜索过,基本上都在讲规范的东西,有点答非所问的意思,没找到我想要的答案。
跪求一个清晰的解释,谢谢。
先有 CommonJS 还是 Node.js ?
是 Node.js 成就了 CommonJS ?
CommonJS 规范是 Node.js 作者创建的吗?
为什么大家谈到 CommonJS 就会涉及 Node.js,只是因为 Node.js 目前应用广泛?
虽然知道 CommonJS 规范的使用,但对于二者的关系不是很了解,一直很纳闷,去网上搜索过,基本上都在讲规范的东西,有点答非所问的意思,没找到我想要的答案。
跪求一个清晰的解释,谢谢。
commonJS是node的模块化规范,由于node出来的时候ES的标准模块规范还没有出来,node又需要使用模块化开发来规范代码模块。
你的疑问
1. 先有 CommonJS 还是 Node.js ?
先有的规范,node.js 借鉴规范实现了自己的模块化系统
2.CommonJS 规范是 Node.js 作者创建的吗?
不是,node.js 是借鉴了这一规范
最新版的node.js已经推荐采用标准的EM模块规范了,大家谈到 CommonJS 就会涉及 Node.js是因为初期几乎大部分的node模块都是基于CommonJS 规范的
就各位的回答,总结一下:
我们都知道,在ES6之前,原生 JavaScript 并没有内置的模块系统。JavaScript 诞生之初只是作为一个脚本语言来做一些很简单的表单校验等工作。但前端的发展,尤其是 Ajax 诞生以后,JavaScript 能做的事情越来越多,自然业务会变得越来越复杂。如果再像以前那样使用一个一个的 <script> 标签引入 JavaScript 代码,会造成越来越难维护,全局变量污染等一系列的问题。所以我们需要模块化来解决这些乱七八糟的东西。每个文件就是一个模块,有自己的作用域,在该文件定义的变量、函数等都是私有的,对其他文件不可见,我们只管对外输出所需要的接口即可。
如果有不妥,欢迎指出。
node之所以能够解析JavaScript代码,是因为它将Google浏览器中的v8引擎移植过来了,集成在了Node.js中。所以,将JavaScript代码放在Node.js中运行,也是会被解析的。从这一点来看,Node.js其实就是JavaScript除浏览器之外另一个运行环境。但是浏览器和Node.js还是有一些区别,比如:JavaScript在浏览器中遵循ECMAScript标准,在Node.js中遵循CommonJS标准。CommonJS中没有dom操作,所以JavaScript在看浏览器中可操作dom,但是在Node.js中不能。Node.js中集成了大量的库,也可依赖大量的第三方库。JavaScript在Node.js可以做服务端开发,在浏览器中做前端开发。
8 回答4.5k 阅读✓ 已解决
6 回答3.2k 阅读✓ 已解决
5 回答2.7k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答2.4k 阅读
1、先有 CommonJS。
2、可以这么说,毕竟两者时代很接近,也无法证实假如没有 Node.js,CommonJS 还能不能广泛流行。
3、不是,两个作者认识,但并没有一起共事过。
4、也不能说只是吧。毕竟现存的模块化解决方案就那么几个:ES Module、AMD、CMD、CommonJS,以及大杂烩 UMD,你也绕不过去它啊。
5、下面细讲。
细节讲述请参考:《编程时间简史系列》JavaScript 模块化的历史进程