属性
__dirname:表示当前模块的目录名。 __filename:表示当前模块的文件名。 console:提供对控制台的访问,允许输出信息、错误和其他数据。 process:提供有关当前 Node.js 进程的信息,并允许我们控制其行为。 require:用于加载其他模块。
方法
clearImmediate():取消之前由 setImmediate()
调度的回调。
clearInterval():取消之前由 setInterval()
调度的定时器。
clearTimeout():取消之前由 setTimeout()
调度的定时器。
setImmediate():立即调度回调函数。
setInterval():重复调度回调函数。
setTimeout():在指定的时间后调度回调函数。
其他有用的属性
Buffer:用于处理二进制数据。 EventEmitter:用于创建和管理自定义事件。 module:提供有关当前模块的信息。 URL:用于解析和处理 URL。
使用示例
以下是使用全局对象的一些示例:
// 输出当前模块的目录名
console.log(__dirname);
// 加载另一个模块
const fs = require("fs");
// 设置一个定时器,在 2 秒后打印一条消息
setTimeout(() => {
console.log("Timer expired");
}, 2000);
// 创建一个自定义事件发射器
const myEmitter = new EventEmitter();
// 添加事件监听器
myEmitter.on("data", (data) => {
console.log(`Received data: ${data}`);
});
// 触发事件
myEmitter.emit("data", "Hello world!");
最佳实践
- 尽量避免直接访问全局对象,而应该使用模块系统来加载和管理依赖项。
- 在模块中声明本地变量,以避免全局命名空间污染。
- 妥善处理异步回调,以避免内存泄漏和未处理的异常。
结论
Node.js 全局对象提供了丰富的功能,可以增强我们的应用程序的灵活性、可维护性和可扩展性。通过理解和有效利用这些属性和方法,我们可以充分释放 JavaScript 的潜力,构建强大的、可扩展的 Node.js 应用程序。