Time: 20190910
本文大纲
JS的逆袭
从JS诞生起,它主要活跃在两个很小的领域:
- 表单验证
- 网页特效
听闻开发JS的老哥只用了10天就完成了这门语言的构建,因此JS本身充满了各种陷阱。
这也是为什么很多人不建议将JS作为第一门学习的语言,因为可能会掌握的越深,对编程语言的理解越有偏差。
JS的发展,在Web2.0时代才真正展示出它的威力,它极大的丰富了网页使用体验,更多的用户需求在前端被满足,JS也开始一路迎来从工具类库–>组件(功能模块)–> 框架 (功能模块组织)–> 应用(业务模块组织)的跃迁。
JS的发展过程,是一路不断被类聚和抽象的过程。
这个过程,其实就是寻找它天然缺失的,模块化的过程。
模块化意味着代码的规范和有组织。而JS的灵活天性伴随着另一个描述:凌乱。
Node开启的是JS在后端大展拳脚的可能性。
CommonJS规范
愿景:JS可以在任何地方运行。
在CommonJS规范出现之前,JS的规范有如下几个缺陷:
- 无模块系统
- 标准库少
- 无标准接口
- 无包管理系统
CommonJS规范的出现,是为了赋予JS编写大型应用的能力。比如:
- 服务端JS程序
- 命令行工具
- 桌面应用程序
- 混合应用程序
CommonJS涵盖内容:
- 模块
- 二进制
- Buffer
- 字符集编码
- IO流
- 进程环境
- 文件系统
- 套接字
- 单元测试
- Web服务器网关接口
- 包管理等
Node相当于是实践,CommonJS规范是理论,理论和规范是相辅相成的。
Node,浏览器,W3C,CommonJS, ES之间的关系
具体来说就是,Node借鉴CommonJS规范中的Modules规范,实现了易用的模块系统。NPM包管理系统实现了Packages规范,为开发Node应用程序提供了极大的助力。
CommonJS规范说明
TBD.
参考
《深入浅出Node.js》