天天看点

Node-内置模块:全局变量 global1、概述2、模块内部的变量3、setImmediate 和 clearImmediate4、setTimeout 和 clearTimeout5、 setInterval 和 clearInterval6、console7、process

  • 概述
  • 模块内部的变量
  • setImmediate 和 clearImmediate
  • setTimeout 和 clearTimeout
  • setInterval 和 clearInterval
  • console
  • process

1、概述

在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是

global

,所有全局变量(除了

global

本身以外)都是

global

对象的属性。

在 Node.js 我们可以直接访问到

global

的属性,而不需要在应用中包含它。

2、模块内部的变量

有些变量看起来在所有模块内部都可以使用,但是实际上不是,他们的作用域只在模块内,这些变量有:

  • __dirname: 表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径。
  • __dirname: 表示当前执行脚本所在的目录。
  • exports
  • module
  • require()

以上五个变量,已经在 module 章节中做了很详细的解释,此处不再赘述。

3、setImmediate 和 clearImmediate

预定立即执行的

callback

回调函数,它是在

I/O

事件的回调之后被触发,也就是在 Node.js 事件循环的当前回合结束时被触发。

当多次调用

setImmediate()

时,

callback

函数会按照它们被创建的顺序依次执行。

4、setTimeout 和 clearTimeout

此处的 setTimeout 和 clearTimeout ,跟 JavaScript中的含义和使用方法是一样的。

需要注意的是,Node.js 不能保证回调被触发的确切时间,也不能保证它们的顺序。 回调会在尽可能接近所指定的时间上调用。当延时大于 2147483647 或小于 1 时,delay 会被设为 1。

5、 setInterval 和 clearInterval

此处的 setInterval 和 clearInterval ,跟 JavaScript中的含义和使用方法是一样的。

当延时大于 2147483647 或小于 1 时,delay 会被设为 1。

6、console

console 与 浏览器中控制台输出的用法是一样,只是需要注意的是 console.time 和 console.timeEnd,用于记录当前程序执行的时间的。

// main.js

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

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

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

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

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

$ node main.js
程序开始执行:
计数: 
获取数据: ms
程序执行完毕
           

7、process

process

是一个全局变量,即

global

对象的属性。

它用于描述当前 Node.js 进程状态的对象,提供了一个与操作系统的简单接口。

可以通过它来获得 node 进程相关的信息,比如运行 node 程序时的命令行参数。或者设置进程相关信息,比如设置环境变量。

详细介绍见 process 模块。

继续阅读