Node.js 全局对象

JavaScript 中有三个独特的目的,称为全局对象(Global
Object),它及其具有属性都足以在程序的别的地方访问,即全局变量。

在浏览器 JavaScript 中,经常 window 是大局对象, 而 Node.js
中的全局对象是 global,全体全局变量(除了 global 自身以外)都以 global
对象的属性。

 

在 Node.js 大家能够直接待上访问到 global 的天性,而不供给在应用中带有它。


大局对象与全局变量

global 最根本的功用是作为全局变量的宿主。根据 ECMAScript
的概念,知足以下条 件的变量是全局变量:

  • 在最外层定义的变量;
  • 全局对象的质量;
  • 隐式定义的变量(未定义直接赋值的变量)。

当你定义2个全局变量时,这一个变量同时也会化为全局对象的性情,反之亦然。需求注
意的是,在 Node.js
中您不恐怕在最外层定义变量,因为具有用户代码都是属于当前模块的,
而模块自身不是最外层上下文。

注意: 永远使用 var 定义变量防止止引进全局变量,因为全局变量会传染
命名空间,升高代码的耦合风险。

process

process 是1个全局变量,即 global 对象的质量。

它用来描述当前Node.js
进度情状的目的,提供了1个与操作系统的简练接口。平常在您写本地命令行程序的时候,少不了要
和它打交道。上面将会介绍 process 对象的1些最常用的分子方法。

序号 事件 & 描述
1 exit
当进程准备退出时触发。
2 beforeExit
当 node 清空事件循环,并且没有其他安排时触发这个事件。通常来说,当没有进程安排时 node 退出,但是 ‘beforeExit’ 的监听器可以异步调用,这样 node 就会继续执行。
3 uncaughtException
当一个异常冒泡回到事件循环,触发这个事件。如果给异常添加了监视器,默认的操作(打印堆栈跟踪信息并退出)就不会发生。
4 Signal 事件
当进程接收到信号时就触发。信号列表详见标准的 POSIX 信号名,如 SIGINT、SIGUSR1 等。

 

 

 

 

 

实例

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

process.on('exit', function(code) {

  // 以下代码永远不会执行
  setTimeout(function() {
    console.log("该代码不会执行");
  }, 0);

  console.log('退出码为:', code);
});
console.log("程序执行结束");

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

node main.js

程序执行结束退出码为: 0