node.js全局对象

IT-HourseMan      2022-02-11     644

关键词:

JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。

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

 

在 Node.js 我们可以直接访问到 global 的属性,而不需要在应用中包含它。


全局对象与全局变量

global 最根本的作用是作为全局变量的宿主。按照 ECMAScript 的定义,满足以下条 件的变量是全局变量:

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

当你定义一个全局变量时,这个变量同时也会成为全局对象的属性,反之亦然。需要注 意的是,在 Node.js 中你不可能在最外层定义变量,因为所有用户代码都是属于当前模块的, 而模块本身不是最外层上下文。

注意: 永远使用 var 定义变量以避免引入全局变量,因为全局变量会污染 命名空间,提高代码的耦合风险。

process

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

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

序号事件 & 描述
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





node.js的全局对象和全局变量

 1、全局对象所有模块都可以调用1)global:表示Node所在的全局环境,类似于浏览器中的window对象。2)process:指向Node内置的process模块,允许开发者与当前进程互动。例如你在DOS或终端窗口直接输入node,就会进入NODE的命令行... 查看详情

node.js的全局对象和全局变量

1、全局对象所有模块都可以调用1)global:表示Node所在的全局环境,类似于浏览器中的window对象。2)process:指向Node内置的process模块,允许开发者与当前进程互动。例如你在DOS或终端窗口直接输入node,就会进入NODE的命令行方式... 查看详情

每日灵魂一问-node.js的全局对象有哪些?

1.global表示node.js的全局运行环境(JavaScript中,通常window是全局对象,而Node.js中的全局对象是global)2.process表示node.js的进程状态3.console用于控制台的输出4.Class:Buffer可以处理二进制以及非Unicode编码的数据5.全局的函数:setTimeoutset... 查看详情

在 node.js 中扩展 TypeScript 全局对象

】在node.js中扩展TypeScript全局对象【英文标题】:ExtendingTypeScriptGlobalobjectinnode.js【发布时间】:2016-05-0614:37:24【问题描述】:我有一个node.js应用程序,它将一些配置信息附加到global对象:global.myConfig=a:1,b:2TypeScript编译器不喜欢... 查看详情

node.js全局对象buffer对象流(代码片段)

文章目录全局对象全局属性全局对象Buffer对象Buffer实例对象用法流可读流可写流管道读写操作全局对象全局属性__filename指向当前正在执行的脚本文件名__dirname指向当前运行的脚本所在的目录(路径)全局对象1、global对象:表示... 查看详情

node.js回调函数事件机制(eventemitter类)全局对象(代码片段)

...Emitter类的各种方法示例:EventEmitter类的on方法Node.js的全局对象process对象process事件Node.js的回调函数什么是回调函数回调函数指的就是一个函数A作为参数传递给一个参数B,然后在B的函数体内调用函数A。此时,称函数A... 查看详情

node.js有哪些全局对象?(代码片段)

...、是什么在浏览器 JavaScript 中,通常window 是全局对象,而 Nodejs中的全局对象是 global在NodeJS里,是不可能在最外层定义一个变量,因为所有的用户代码都是当前模块的,只在当前模块里可用,但可以通过exports... 查看详情

如何解决全局 node.js 对象上的这个打字稿错误

】如何解决全局node.js对象上的这个打字稿错误【英文标题】:Howtoresolvethistypescripterroronglobalnode.jsobject【发布时间】:2021-12-1908:27:38【问题描述】:我正在按照本指南https://vercel.com/guides/nextjs-prisma-postgres创建一个完整的堆栈应用... 查看详情

node.js:get/post请求全局对象工具模块

一、GET/POST请求  在很多场景中,我们的服务器都需要跟用户的浏览器打交道,如表单提交。表单提交到服务器一般都使用GET/POST请求。1、获取GET请求内容  由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后... 查看详情

node.js之global全局对象(代码片段)

Globalglobal和window很像,都是全局对象CONSOLE断言是用来测试用的断言就是假定一个条件,如果条件成立则不输出任何内容,如果条件不成立则报错还要输出想要输出的内容。console.assert(条件,条件不成立输出的内容);varfo... 查看详情

node基本模块

  JavaScript有且仅有一个全局对象,在浏览器中,叫window对象。而在Node.js环境中,也有唯一的全局对象,但不叫window,而叫global,这个对象的属性和方法也和浏览器环境的window不同。  进入Node.js交互环境,可以直接输入: ... 查看详情

在node.js中扩展typescript全局对象(代码片段)

nodejs16后,删除了global,要自定义全局属性,需要这样配置declareglobal//eslint-disable-next-lineno-varvarENV:\'qa\'|\'rel\';namespaceNodeJSinterfaceProcessEnvNODE_ENV:\'development\'|\'production\';export;有任何疑问,可以给我评论,或者添加微信:nh_chen,备... 查看详情

10.node.js核心模块

1.全局对象2.常用工具3.事件机制4.文件系统访问5.HTTP服务与客户端一.全局对象(GlobalObject),与window对象一样process==>全局变量,描述当前Node.js进程状态的对象,提供了一个操作系统的简单接口1.process.argv==>命令行参数数组,第一个... 查看详情

node.js基础(代码片段)

文章目录前言一、Node的全局对象与函数1.全局对象2.全局函数二、node.js内置模块1.console2.process3.path4.fs5.http三、自定义模块四、第三方模块总结前言Node.js不是一种编程语言,不是一种框架,而是一种运行环境,是基于C... 查看详情

全局对象属性

全局对象是最顶层的对象,在浏览器环境指的是window对象,在Node.js指的是global对象。在JavaScript语言中,所有全局变量都是全局对象的属性。(Node的情况比较特殊,这一条只对REPL环境适用,模块环境必须显式声明成global的属性... 查看详情

node.js概述

...介安装与更新版本管理工具nvm基本用法REPL环境异步操作全局对象和全局变量模块化结构概述核心模块自定义模块异常处理try…catch结构回调函数EventEmitter接口的err 查看详情

this指向全局对象

当在全部范围内使用this,他将会指向全局对象,一般是window对象,但全局对象不一定只有window,特别是在node.js环境中,作为函数调用时一般作为全局对象<scripttype="text/javascript">  varname="hello";  console.log(this.name);//顶层... 查看详情

this

this指向当前对象。各种情况:全局上下文node.js对全局上下文this特殊处理。console.log(this);——输出{} this全局上下文和函数指向全局函数varfunc=function(){console.log(this);}func();//全局 对象只有对象.方法,this指向当前对象;其... 查看详情