欢迎访问宙启技术站
智能推送

CommonJS规范有哪些

发布时间:2023-05-14 06:59:43

CommonJS规范是一种JavaScript语言的模块化规范,它定义了一种标准的API,用于组织JavaScript代码库,并提供了一种模块加载机制。该规范被广泛使用于服务器端JavaScript开发,并已成为Node.js的核心组成部分。

以下是CommonJS规范的主要特征:

1. 模块定义方式

CommonJS规范定义了一种模块定义API,使得开发者可以将代码划分为小的、相互依赖的模块。一个模块通过module.exports对象来向外暴露接口,另一个模块通过require函数来引用该模块的接口。例如:

// moduleA.js
const moduleB = require('./moduleB')

module.exports = {
  hello: function(name) {
    moduleB.sayHello(name)
  }
}

// moduleB.js
module.exports = {
  sayHello: function(name) {
    console.log(Hello, ${name}!)
  }
}

// main.js
const moduleA = require('./moduleA')
moduleA.hello('World')

2. 加载方式

CommonJS规范规定模块的加载方式是同步的,即模块代码在引用时会立即执行,并且代码中require语句会阻塞后面的代码执行。这种加载方式对于服务器端应用来说是非常适用的,但在浏览器端可能会因为网络请求而导致阻塞,因此现代的浏览器端JavaScript通常采用异步加载方式。

3. 常用模块 API

CommonJS规范提供了一些通用的模块API,包括module、exports、require、global等对象。其中,module对象代表当前模块,exports对象是module.exports的别名,require函数用于加载模块,global对象代表全局对象。

4. 核心模块

CommonJS规范中还定义了一些核心模块,包括assert、buffer、child_process、cluster、console、crypto、dgram、dns、events、fs、http、https、net、os、path、process、punycode、querystring、readline、stream、string_decoder、tls、tty、url、util、v8、vm和zlib等模块。这些模块提供了常用的底层API,方便开发者进行系统级别的编程。

总之,CommonJS规范为JavaScript代码库的组织和管理提供了强大的工具和标准,使得代码复用和维护更加容易。它已经被广泛应用于服务器端JavaScript开发和Node.js生态系统中,也成为了JavaScript模块化的重要历史里程碑。