Nodejs全局对象

参考:Node.js 全局对象 | 菜鸟教程

__filename

__filename 表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。

实例

创建文件 main.js ,代码如下所示:

console.log( __filename );

执行 main.js 文件,代码如下所示:

__dirname

__dirname 表示当前执行脚本所在的目录。

实例

创建文件 main.js ,代码如下所示:

// 输出全局变量 __dirname 的值
console.log( __dirname );

执行 main.js 文件,代码如下所示:

setTimeout(cb, ms)

setTimeout(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。:setTimeout() 只执行一次指定函数。

返回一个代表定时器的句柄值。

实例

创建文件 main.js ,代码如下所示:

function printHello(){
    console.log( "Hello, World!");
 }
 // 两秒后执行以上函数
 setTimeout(printHello, 2000);

执行 main.js 文件,代码如下所示:

clearTimeout(t)

clearTimeout( t ) 全局函数用于停止一个之前通过 setTimeout() 创建的定时器。 参数 t 是通过 setTimeout() 函数创建的定时器。

实例

创建文件 main.js ,代码如下所示:

function printHello(){
    console.log( "Hello, World!");
 }
 // 两秒后执行以上函数
 var t = setTimeout(printHello, 2000);
 
 // 清除定时器
 clearTimeout(t);

执行 main.js 文件,代码如下所示:

setInterval(cb, ms)

setInterval(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。

返回一个代表定时器的句柄值。可以使用 clearInterval(t) 函数来清除定时器。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。

实例

创建文件 main.js ,代码如下所示:

function printHello(){
    console.log( "Hello, World!");
 }
 // 两秒后执行以上函数
 setInterval(printHello, 2000);

以上程序每隔两秒就会输出一次"Hello, World!",且会永久执行下去,直到你按下 ctrl + c 按钮。

console

console 用于提供控制台标准输出,它是由 Internet Explorer 的 JScript 引擎提供的调试工具,后来逐渐成为浏览器的实施标准。

Node.js 沿用了这个标准,提供与习惯行为一致的 console 对象,用于向标准输出流(stdout)或标准错误流(stderr)输出字符。

第一个参数是一个字符串,如果没有 参数,只打印一个换行。

console.log('Hello world'); 
console.log('byvoid%diovyb'); 
console.log('byvoid%diovyb', 1991); 

运行结果为:

console.trace();

实例

创建文件 index.js ,代码如下所示:

console.info("程序开始执行:");

var counter = 10;
console.log("计数: %d", counter);

console.time("获取数据");
//
// 执行一些代码
// 
console.timeEnd('获取数据');

console.info("程序执行完毕。")


 
 

process

process 是一个全局变量,即 global 对象的属性。

它用于描述当前Node.js 进程状态的对象,提供了一个与操作系统的简单接口。通常在你写本地命令行程序的时候,少不了要 和它打交道。

// 输出当前目录
console.log('当前目录: ' + process.cwd());

// 输出当前版本
console.log('当前版本: ' + process.version);

// 输出内存使用情况
console.log(process.memoryUsage());

<think>好的,我需要回答用户关于Node.js全局环境的概念和作用的问题。首先,我得明确用户的需求是什么。用户可能刚接触Node.js,想了解全局环境的基本定义和它的作用。根据提供的引用资料,我需要整合相关信息,确保回答准确且符合用户的理解水平。 首先,查看引用中的相关内容。引用[1]提到全局对象可以在任何地方访问,提供了许多功能和属性。引用[2]说明如何通过global对象定义全局变量。引用[3]和[4]涉及环境配置和模块安装,可能和全局环境的使用场景有关。引用[5]讨论了全局函数如setImmediate的执行顺序,这也是全局环境的一部分。 接下来,我需要组织回答的结构。通常,定义和作用分开阐述会更清晰。定义部分需要解释什么是Node.js全局环境,包括global对象全局变量和函数。作用部分可以分点列出,比如全局访问、内置模块、环境配置等。同时,要确保使用正确的LaTeX格式,比如行内公式用$...$,独立公式用$$...$$,不过这里可能用不上太多数学表达式,但需要留意其他技术术语的正确格式。 可能需要注意的问题:用户是否容易混淆全局对象和模块作用域?比如,Node.js中每个文件都是模块,默认不是全局,但通过global对象可以定义全局变量。这点需要明确说明,避免误解。此外,环境变量的配置(如引用[4])虽然属于全局设置,但可能属于不同的概念,是否需要包含在回答中?可能作为作用的一部分,说明全局环境的作用包括配置应用程序的行为。 需要检查引用标记是否正确,比如在提到全局对象时引用[1],定义全局变量时引用[2],执行顺序引用[5]等。同时,生成的相关问题要围绕用户可能进一步想了解的内容,比如如何定义全局变量、与浏览器环境的区别、常见问题等。 最后,确保语言简洁,结构清晰,分点说明,使用户容易理解。避免使用过于专业的术语,必要时举例说明,比如使用global.myVar的方式定义变量。</think>### Node.js 全局环境的定义 Node.js 全局环境是一个在应用程序中**始终可访问的上下文**,包含以下核心组成部分: 1. **`global`对象**:顶级命名空间,所有添加到`global`的属性可在任何模块中直接访问[^1] 2. **全局变量**:通过`global.属性名`定义的变量(如`global.appConfig`),打破模块作用域隔离[^2] 3. **内置全局函数**:如`setTimeout()`、`setImmediate()`,无需引入即可使用[^5] 4. **环境变量**:通过`process.env`访问的配置参数,影响应用程序全局行为[^4] ### 全局环境的核心作用 1. **跨模块数据共享** ```javascript // 定义全局配置 global.appSettings = { debug: true } // 任意模块中可直接访问 console.log(appSettings.debug) // 输出true ``` 2. **提供基础运行时能力** - 定时器:`setTimeout(callback, 1000)`[^5] - 事件循环控制:`setImmediate()`与`process.nextTick()`[^5] - 模块加载系统:`require()`函数本身属于全局环境 3. **环境配置管理** ```bash # 通过环境变量配置全局参数 NODE_ENV=production node app.js ``` 在代码中通过`process.env.NODE_ENV`读取[^4] 4. **异常处理中枢** ```javascript // 全局错误捕获 process.on('uncaughtException', (err) => { console.error('全局捕获:', err) }) ``` ### 注意事项 - **避免污染**:过度使用全局变量可能导致内存泄漏(引用无法回收) - **模块化优先**:应优先使用模块导出机制,全局变量作为最后手段 - **浏览器差异**:Node.js的`global`等同于浏览器的`window`对象,但模块系统不同
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值