一、认识Global
Global是一个全局对象,它包含所有的全局变量和函数。它是全局作用域的标识符,在Node.js中始终可用。Global对象在Node.js运行时就已经初始化了,并继承了Node.js V8引擎的全局对象。在Node.js环境中,我们可以通过在代码中简单引用直接访问Global对象,而不需要显式地声明变量。
二、全局变量
Global对象中存在的全局变量有很多,其中一些比较常用且重要的变量有:
__dirname
: 当前模块的目录名__filename
: 当前模块的文件名console
: 控制台process
: 进程相关的信息和方法
console.log(__dirname);
// 输出: /Users/xxx/Documents/project
console.log(__filename);
// 输出: /Users/xxx/Documents/project/index.js
console.log(process.cwd());
// 输出: /Users/xxx/Documents/project
console.log(process.env);
// 输出: 当前系统下所有环境变量
console.log(process.memoryUsage());
// 输出: 当前进程的内存使用情况
三、全局函数
除了全局变量,Global对象中还包含了很多函数和类。
1. setTimeout() 和 clearTimeout()
setTimeout()
函数用于在指定的延迟时间后执行指定的代码。其中包含两个参数:要执行的代码和延迟的时间(以毫秒为单位)。clearTimeout()
函数则可以用来取消一个还未执行的延迟代码。
let timer = setTimeout(function() {
console.log('1秒已经过去了');
}, 1000);
clearTimeout(timer); // 取消未执行的定时任务
2. setInterval() 和 clearInterval()
setInterval()
函数用于以指定的时间间隔重复执行指定的代码。其中包含两个参数:要执行的代码和时间间隔(以毫秒为单位)。
let interval = setInterval(function() {
console.log('1秒已经过去了');
}, 1000);
clearInterval(interval); // 停止定时任务
3. Buffer() 和 Buffer.from()
Buffer()
函数用于创建一个新的Buffer实例。而Buffer.from()
则可以从指定的对象或字符串中创建一个Buffer实例。
let buf1 = Buffer.alloc(10);
console.log(buf1);
let buf2 = Buffer.from('hello');
console.log(buf2);
4. require()
require()
函数用于加载模块。Node.js使用CommonJS规范进行模块管理,因此可以使用require()
函数在代码中引入其他模块中的代码。
const fs = require('fs');
console.log(fs);
5. exports 和 module.exports
exports
是module.exports
的一个引用,因此可以将变量或函数赋值给exports
以便在其他文件中使用。而module.exports
用于导出当前模块中的变量或函数,使其能在其他文件中加载和使用。
exports.add = function(a, b) {
return a + b;
}
module.exports.sub = function(a, b) {
return a - b;
}
四、总结
Global对象是Node.js中的一个非常重要的对象,其中包含了很多在开发中常用的全局变量和函数。通过本文的学习,我们可以更加深入地了解Node.js中Global对象的特性和使用方法。