📜  Node.js-全局对象(1)

📅  最后修改于: 2023-12-03 15:33:11.015000             🧑  作者: Mango

Node.js全局对象

在 Node.js 中有许多全局对象可供使用,这些对象在每个模块中都是可用的。这些全局对象可以使开发者轻松实现复杂的操作,而不必手动编写底层代码。本文将介绍 Node.js 中最常用的全局对象。

全局对象

在 Node.js 中,有四种全局对象可供使用:

  1. 全局函数 (global functions)
  2. 全局变量 (global variables)
  3. 魔术变量 (magic variables)
  4. 实用工具 (utility modules)
全局函数

在 Node.js 中,有一些全局函数可以用于处理各种数据类型:

Buffer

Buffer 是处理二进制数据的类。在 Node.js 中,Buffer 类是全局可用的,因此您无需在每个模块中引入它。创建一个新的 Buffer 对象的语法如下:

const buf = Buffer.from(‘hello world’, ‘utf8’);
setTimeout

setTimeout 是一个全局函数,可用于在给定的时间(以毫秒为单位)后执行回调函数。它的基本语法如下:

setTimeout(callback, delay, [arg], […])

其中:

  • callback:必需,要执行的回调函数。
  • delay:必需,延迟时间,以毫秒为单位。
  • arg:可选,传递给回调函数的参数。
setInterval

setInterval 是一个全局函数,即可用于在每个指定的时间间隔后运行回调函数。它的基本语法如下:

setInterval(callback, delay, [arg], […])

其中:

  • callback:必需,要执行的回调函数。
  • delay:必需,延迟时间,以毫秒为单位。
  • arg:可选,传递给回调函数的参数。
全局变量

在 Node.js 中,有一些全局变量可以用于处理各种操作系统和环境相关的信息:

__dirname

__dirname 是指当前脚本所在的目录名。例如,如果当前脚本存在于 /home/user/myapp/bin 目录中,则 __dirname 将返回 /home/user/myapp/bin。

__filename

__filename 是指当前脚本的绝对路径。例如,/home/user/myapp/bin/myfile.js。

process

process 是一个全局变量,它提供了对进程的访问权,例如当 Node.js 运行时,您可以使用 process.exit(0) 终止该进程。process 还提供了其他许多方法和属性来处理进程的信息。

魔术变量

魔术变量(Magic Variables)是一些 Node.js 全局变量,可以在代码中使用。这些变量提供了有关当前文件和模块的信息,例如文件名、行数和调用堆栈。一些常见的魔术变量如下:

__dirname

__dirname 是指当前脚本所在的目录名。例如,如果当前脚本存在于 /home/user/myapp/bin 目录中,则 __dirname 将返回 /home/user/myapp/bin。

__filename

__filename 是指当前脚本的绝对路径。例如,/home/user/myapp/bin/myfile.js。

exports

exports 是每个模块使用的一个对象。您可以通过将值分配给 exports 对象来创建一个可从另一个模块中调用的函数或变量。例如,在一个名为 mymodule.js 的文件中:

exports.myFunction = function() {
  console.log('Hello World!');
};
实用工具

Node.js 提供了许多实用工具,可以帮助您进行各种操作。一些常见的实用工具如下:

util

util 是一个实用程序模块,可用于格式化和输出调试消息。例如,您可以使用 util.inspect() 将对象打印为字符串。下面是一个简单的示例:

const util = require('util');
const obj = { foo: 'bar' };
console.log(util.inspect(obj));

输出将为:

{ foo: 'bar' }
总结

在 Node.js 中,有四种全局对象可供使用:全局函数、全局变量、魔术变量和实用工具。每个模块都可以访问这些全局对象,并使用它们进行各种操作。对于许多常见的操作,例如处理二进制数据或在延迟后运行函数,可以使用全局函数。对于其他操作,例如处理进程信息或向其他模块公开函数或变量,可以使用全局变量或魔术变量。最后,实用工具模块提供了各种帮助程序,可帮助您执行许多不同的任务。