NodeJS全局对象

114 阅读2分钟

在 Node.js 中,全局对象是可以在任何模块中直接访问的对象,无需通过 require 引入。这些全局对象提供了许多核心功能,如模块加载、文件操作、进程管理等。

1、global

  • 作用:Node.js 的全局命名空间对象,类似于浏览器中的 window

  • 特点

    • 在全局作用域中定义的变量和函数会成为 global 对象的属性。
    • 默认情况下,模块中的变量和函数不会挂载到 global 对象上。

image.png (这里的属性global是为了引用自身,相当于window.window===window

2、setTimeout setInterval

  • 作用:定时器函数,用于延迟或周期性执行代码。
  • 浏览器中的setTimeout返回的是一个数字

image.png

  • node里边的setTimeout返回的是一个对象
const timer = setTimeout(()=>{},1000)
console.log(timer)

image.png

3、setImmediate

类似于setTimeout 0

const timer = setImmediate(()=>{
  console.log("abc")
},0)

image.png

4、 __dirname

  • 作用:当前模块文件所在目录的绝对路径。

  • 特点

    • 每个模块中都有一个独立的 __dirname注意__dirname并非global属性

5、## __filename

  • 作用:当前模块文件的绝对路径。 注意__dirname并非global属性

6、Buffer

类型化数组,继承自UInt8Array(输出时可能用十六进制表示)

  • 作用:用于处理二进制数据。
const buf = Buffer.from("Hello, Node.js");
console.log(buf.toString()); // Hello, Node.js

7、## process

  • 作用:提供与当前 Node.js 进程相关的信息和控制。

  • 常用属性/方法

    • process.argv:获取命令行所有参数。(string[])
    • process.env:获取系统环境变量。
    • process.cwd():当前工作目录。(绝对路径)
    • process.exit():强制退出当前node进程。(可以传入退出码,0表示成功退出,默认为0)
    • process.on():监听进程事件(如 exituncaughtException)。
    • process.platform:获取当前操作系统(例如结果是win32,表示win32及其以上)
    • process.kill():根据进程ID杀死进程(传入的参数为id)
console.log(process.argv); // 命令行参数
console.log(process.env.NODE_ENV); // 环境变量
process.on("exit", (code) => {
  console.log(`进程退出,代码:${code}`);
});
process.exit();

8、console

  • 作用:提供控制台输出功能。

  • 常用方法

    • console.log():普通日志。
    • console.error():错误日志。
    • console.warn():警告日志。
    • console.table():以表格形式输出数据。