commonjs
Axel Rauschmayer博士正式公布了ECMAScript 6(ES6)模块语法的最终细节。 Rauschmayer在文章“ECMAScript 6模块:最终语法”中详细描述了完整的ES6模块系统,包括ECMAScript 6模块、模块元数据和ECMAScript 6模块加载器的API等。 据Rauschmayer所述,ES6模块的目标是创建一种让CommonJS和AMD用户都感到满意的格式,由于这种模式是内置于语言之中的,因此其能力超越了CommonJS和AMD
Node.js中Buffer简介: JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。 但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区 Node.js Buffer(缓冲区) JavaScript 语言自身只有字符串数据类型,没有二进制数据类型
Kotlin 提供了 JavaScript 作为目标平台的能力。它通过将 Kotlin 转换为 JavaScript 来实现。目前的实现目标是 ECMAScript 5.1,但也有最终目标为 ECMAScript 2015 的计划
模块化编程使得开发者可以将一个大型的程序拆分成多个小的模块,由每一个模块提供可靠的抽象和封装,确保每一个模块正常工作,再拼装起来,这一思想使得 多人协作参与的大型程序开发更可控,对 debug 和测试等更友好。 Node.js 自诞生就开始支持模块化的,但浏览器的世界里这个过程依然 处于缓慢的发展之中。Webpack 这类工具的诞生也是为了解决这个问题,使得我们可以不用顾虑全局变量之类的各种问题编写各种模块,最后再打包成一个文件
Promise对象是CommonJS工作组提出的一种规范,目的是为异步操作提供统一接口。 首先,它是一个对象,也就是说与其他JavaScript对象的用法,没有什么两样;其次,它起到代理作用(proxy),充当异步操作与回调函数之间的中介。它使得异步操作具备同步操作的接口,使得程序具备正常的同步运行的流程,回调函数不必再一层层嵌套
模块就是一个js文件,在模块内部任何变量或其他对象都是私有的,不会暴露给外部模块。在CommonJS模块化规范中,在模块内部定义了一个module对象,module对象内部存储了当前模块的基本信息,同时module对象中有一个属性名为exports,exports用来指定需要向外部暴露的内容。只需要将需要暴露的内容设置为exports或exports的属性,其他模块即可通过require来获取这些暴露的内容 当我们要加载的模块是一个文件模块时,CommonJS规范会先去寻找该文件,比如:require("./m1")时,会首先寻找名为m1的文件