Node.js中的全局对象有哪些?举例说明他们的用途

92 阅读1分钟

1.global

  • Node.js 的全局命名空间对象,类似于浏览器中的 window 对象。
  • 例如,你可以将一个变量设置为全局变量:
global.myGlobalVar = 42;
console.log(global.myGlobalVar); // 输出: 42

2.process

  • 提供与当前 Node.js 进程的信息和控制,包括标准输入、输出流,命令行参数,环境变量等。
  • 例如,获取命令行参数:
process.argv.forEach((val, index) => {
  console.log(`${index}: ${val}`);
});

3.console

  • 提供简单的调试控制台,用于输出日志信息。
  • 例如,输出调试信息:
console.log('Hello, World!');
console.error('An error occurred');

4.Buffer

  • 用于处理二进制数据的全局类,尤其适用于处理文件系统、网络操作等。
  • 例如,创建一个 Buffer 并写入数据:
const buf = Buffer.from('Hello, World!');
console.log(buf.toString()); // 输出: Hello, World!

5.setImmediateclearImmediate

  • setImmediate 用于将一个回调函数放在事件循环的当前轮询阶段结束后执行。
  • clearImmediate 用于取消通过 setImmediate 设置的回调函数。
  • 例如:
const immediateId = setImmediate(() => {
  console.log('This will run after the current event loop');
});
clearImmediate(immediateId); // 如果调用了这行代码,之前的回调将不会执行

6.setTimeout, clearTimeout, setInterval, clearInterval

  • 用于设置定时器和间隔器。
  • 例如,设置一个定时器:
const timeoutId = setTimeout(() => {
  console.log('This runs after 2 seconds');
}, 2000);
clearTimeout(timeoutId); // 如果调用了这行代码,之前的定时器将不会执行
  • 设置一个间隔器:
const intervalId = setInterval(() => {
  console.log('This runs every 2 seconds');
}, 2000);
clearInterval(intervalId); // 如果调用了这行代码,之前的间隔器将停止执行

7.__dirname

  • 表示当前模块的目录名。
  • 例如,获取当前模块的目录路径

8.__filename

  • 表示当前模块的文件名。
  • 例如,获取当前模块的文件路径