编辑
2025-09-24
NodeJs
00

目录

Global 全局对象概述
常用全局对象和函数示例
console
process
setTimeout / clearTimeout
setInterval / clearInterval
Buffer
dirname 和 filename
module 和 require
自定义全局变量
结语

在 Node.js 中,global 是一个非常重要的概念,允许我们在整个应用程序中访问一些全局变量和函数。global 对象在 Node.js 中类似于浏览器环境中的 window 对象。本文将深入探讨 global 对象,并通过多个示例来展示其常用的功能和使用场景。

Global 全局对象概述

global 对象在 Node.js 中是全局可访问的,这意味着你可以在任何模块或函数中直接使用它,而无需显式地导入或声明。以下是一些常见的全局对象和函数:

  • console
  • process
  • setTimeout / clearTimeout
  • setInterval / clearInterval
  • Buffer
  • __dirname
  • __filename
  • module
  • require

常用全局对象和函数示例

console

console 对象主要用于输出信息到标准输出和标准错误。常见的方法包括 logerrorwarn 等。

JavaScript
console.log("Hello, World!"); // 输出信息 console.error("This is an error message."); // 输出错误信息 console.warn("This is a warning message."); // 输出警告信息

process

process 对象提供了与当前 Node.js 进程相关的信息和控制操作。它包含属性如 argvenv 以及方法如 exitcwd 等。

JavaScript
// 输出命令行参数 console.log(process.argv); // 输出当前工作目录 console.log(process.cwd()); // 退出进程,退出码为0 process.exit(0);

image.png

setTimeout / clearTimeout

setTimeout 函数用于在指定的毫秒数之后执行一个函数,clearTimeout 用于取消 setTimeout

JavaScript
const timeoutId = setTimeout(() => { console.log("This will run after 2 seconds."); }, 2000); // 取消定时器 clearTimeout(timeoutId);

image.png

setInterval / clearInterval

setInterval 函数用于每间隔指定的毫秒数执行一个函数,clearInterval 用于取消 setInterval

JavaScript
const intervalId = setInterval(() => { console.log("This will run every 2 seconds."); }, 2000); // 取消定时器 clearInterval(intervalId);

image.png

Buffer

Buffer 对象用于处理二进制数据流。它允许直接在 Node.js 中操作二进制数据。

JavaScript
const buf = Buffer.from('Hello, World!', 'utf8'); console.log(buf.toString('hex')); // 输出16进制字符串 console.log(buf.toString('base64')); // 输出base64字符串

__dirname__filename

__dirname 是当前模块的目录名,__filename 则是当前模块的文件名。

JavaScript
console.log(__dirname); // 输出当前模块的目录名 console.log(__filename); // 输出当前模块的文件名

modulerequire

这两个对象用于在 Node.js 中管理模块。module 对象表示当前模块,而 require 函数用于引入其他模块。

JavaScript
// 使用 require 引入一个本地模块 const localModule = require('./localModule'); // 使用 require 引入一个内置模块 const fs = require('fs'); // 输出当前模块的信息 console.log(module);

自定义全局变量

虽然不推荐,但你可以将自己的变量添加到 global 对象中,从而使其成为全局变量。

JavaScript
global.myGlobalVariable = 'This is a global variable'; console.log(global.myGlobalVariable); // 输出 'This is a global variable'

然而,出于代码可读性和模块化的考虑,尽量避免使用自定义全局变量。

结语

global 对象为 Node.js 提供了一套强大的全局API和工具,帮助开发者更轻松地进行编程。尽管如此,过度依赖全局变量可能会导致代码难以维护,因此在实际开发中应尽量避免自定义全局变量,而是使用模块系统和局部变量来保持代码的模块化和清晰性。通过对这一对象的深入理解,你将能够更高效地开发 Node.js 应用程序。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!