Node.js中的全局对象有哪些?有什么用?


本文摘自PHP中文网,作者青灯夜游,侵删。

本篇文章带大家了解一下Node.js中的全局对象,看看Node.js中有哪些全局对象,这些全局对象有什么用?怎么用?一起来学习吧!

所谓全局对象,就是可以直接访问的对象,比如

  • 浏览器中的的全局对象就是window
  • Node 中的全局对象就是global

下面让我们看看 Node 的全局对象具体有哪些? 这些对象又有什么用?【推荐学习:《nodejs 教程》】

如何获取全局对象

在某些老项目中,我们可能看到这样的代码片段

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

const getGlobalThis = () => {

  // 在 webworker 或 service worker 中

  if (typeof self !== "undefined") return self;

 

  // 在浏览器中

  if (typeof window !== "undefined") return window;

 

  // 在 Node.js 中

  if (typeof global !== "undefined") return global;

 

  // 独立的 JavaScript shell

  if (typeof this !== "undefined") return this;

 

  throw new Error("Unable to locate global object");

};

 

const theGlobalThis = getGlobalThis();

 

if (typeof theGlobalThis.setTimeout !== "function") {

  // 此环境中没有 setTimeout 方法!

}

这是因为各个 JS 环境获取全局对象的方式都是不同的,所以通过封装了一个getGlobalThis来统一获取所有环境的全局对象

但是自从 ES13 特性出现后,支持使用globalThis 这种标准的方式来获取不同环境下的全局 this 对象(也就是全局对象自身)

1

2

3

if (typeof globalThis.setTimeout !== "function") {

  // 此环境中没有 setTimeout 方法!

}

与浏览器相似的全局变量

Node.js 的全局变量与 Chrome 有一些差点,但也有很多类似的

我们启动一个简易的 Node 项目,然后打印如下的东西,看看能否正常输出

  • Date 对象 ?

1

2

console.log(Date);

// [Function: Date]

  • Math 对象 ?

1

2

console.log(Math);

// Object [Math] {}

  • setTimeout 对象 ?

1

2

3

4

5

6

console.log(setTimeout);

/*

[Function: setTimeout] {

  [Symbol(nodejs.util.promisify.custom)]: [Function]

}

*/

  • setInterval 对象 ?

1

2

console.log(setInterval);

// [Function: setInterval]

  • setImmediate 对象 ?

1

2

3

4

5

6

console.log(setImmediate);

/*

[Function: setImmediate] {

  [Symbol(nodejs.util.promisify.custom)]: [Function]

}

*/

  • requestAnimationFrame 对象 ?

requestAnimationFrame代表浏览器渲染的下一帧,所以在服务端环境是不存在的

1

2

3

// 浏览器渲染的下一帧,所以在服务端环境中是不存在的

console.log(requestAnimationFrame);

// ReferenceError: requestAnimationFrame is not defined

Node.js 特有的全局变量

1

2

3

4

5

6

7

// 当前代码所运行的脚本位置

console.log(__filename);

// D:\MyCode\Gitee\Learning.Node\geek-nodejs\08\index.js

 

// 当前代码所运行的脚本目录

console.log(__dirname);

// D:\MyCode\Gitee\Learning.Node\geek-nodejs\08

1

console.log(process);

version: Node.js 版本号platform , arch: 运行环境的操作系统kill , exit : 用于管理,或者杀进程的操作hrtime: 用于统计时间,可以精确到微秒级cpuUsage: CPU 占用率resourceUsage: 内存占用率env: Node 的环境变量,作用:可以设置环境变量,以便在不同的开发中使用argv:用户在启动程序时,敲击的命令是怎样的, 作用:命令行程序中使用 ........................

更多编程相关知识,请访问:编程入门!!

以上就是Node.js中的全局对象有哪些?有什么用?的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

cors跨域资源共享详细介绍(附代码)

node.js中怎么进行调试?

两种升级nodejs的方法介绍

如何从node.js发送电子邮件

node.js 15正式版发布,将替代node.js 14成为当前的的稳定发行版

node.js中文件之间的引入教程实例

node.js中什么是buffer对象?使用场景是什么

express中间件body-parser的实现方法

nodejs和vuejs之间的差异

node.js fs是什么

更多相关阅读请进入《node.js》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...