在 Node.js 中,全局对象是可以在任何模块中直接访问的对象,无需通过 require 引入。这些全局对象提供了许多核心功能,如模块加载、文件操作、进程管理等。
1、global
-
作用:Node.js 的全局命名空间对象,类似于浏览器中的
window。 -
特点:
- 在全局作用域中定义的变量和函数会成为
global对象的属性。 - 默认情况下,模块中的变量和函数不会挂载到
global对象上。
- 在全局作用域中定义的变量和函数会成为
(这里的属性global是为了引用自身,相当于
window.window===window)
2、setTimeout setInterval
- 作用:定时器函数,用于延迟或周期性执行代码。
- 浏览器中的setTimeout返回的是一个数字
- node里边的setTimeout返回的是一个对象
const timer = setTimeout(()=>{},1000)
console.log(timer)
3、setImmediate
类似于setTimeout 0
const timer = setImmediate(()=>{
console.log("abc")
},0)
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():监听进程事件(如exit、uncaughtException)。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():以表格形式输出数据。