nodejs 全局变量和全局对象知识点及用法详解

作者:js初学者 时间:2024-05-08 10:11:26 

1、全局对象

所有模块都可以调用

1)global:表示Node所在的全局环境,类似于浏览器中的window对象。

2)process:指向Node内置的process模块,允许开发者与当前进程互动。

例如你在DOS或终端窗口直接输入node,就会进入NODE的命令行方式(REPL环境)。退出要退出的话,可以输入 process.exit();

3)console:指向Node内置的console模块,提供命令行环境中的标准输入、标准输出功能。

通常是写console.log(),无须多言

2、全局函数

1)定时器函数:共有4个,分别是setTimeout(), clearTimeout(), setInterval(), clearInterval()。
2)require:用于加载模块。

3、全局变量

1)_filename:指向当前运行的脚本文件名。

2)_dirname:指向当前运行的脚本所在的目录。

4、准全局变量

模块内部的局部变量,指向的对象根据模块不同而不同,但是所有模块都适用,可以看作是伪全局变量,主要为module, module.exports, exports等。

module变量指代当前模块。module.exports变量表示当前模块对外输出的接口,其他文件加载该模块,实际上就是读取module.exports变量。

  • module.id 模块的识别符,通常是模块的文件名。

  • module.filename 模块的文件名。

  • module.loaded 返回一个布尔值,表示模块是否已经完成加载。

  • module.parent 返回使用该模块的模块。

  • module.children 返回一个数组,表示该模块要用到的其他模块。

这里需要特别指出的是,exports变量实际上是一个指向module.exports对象的链接,等同在每个模块头部,有一行这样的命令。

var exports = module.exports;

这造成的结果是,在对外输出模块接口时,可以向exports对象添加方法,但是不能直接将exports变量指向一个函数:

exports.自定义模块 = function (x){ console.log(x);};

上面这样的写法是无效的,因为它切断了exports与module.exports之间的链接。但是,下面这样写是可以的。

知识点扩展:

JavaScript中有一个特殊的对象,叫全局对象.

在浏览器JS中,这个全局对象通常是Window对象

而在NodeJS中,这个全局对象的名字是global.

在NodeJS中,有三种定义全局变量的方法:

1> 在最外层定义的变量.

一般来讲,用户代码不会处于最外层.

只有一种情况可以:在解释器shell环境中.

2>将变量定义为global对象的属性

var global.x;

3>隐式定义的所有变量(未定义,直接赋值的变量)

这也是为啥不建议使用隐式定义,这样的变量被定义为全局变量会污染环境.

来源:https://www.cnblogs.com/gpzhen/p/7216004.html

标签:nodejs,全局变量,全局对象
0
投稿

猜你喜欢

  • mysql installer community 8.0.12.0安装图文教程

    2024-01-15 05:16:33
  • 为什么不压缩 HTML

    2010-05-07 12:37:00
  • 关于Python中进度条的六个实用技巧分享

    2023-07-03 09:58:39
  • 将Session值储存于SQL Server中

    2024-01-22 08:22:31
  • OpenCV立体图像深度图Depth Map基础

    2021-09-23 22:12:59
  • Python绘图之桃花盛开

    2022-03-20 08:05:50
  • Mysql的语句生成后门木马的方法

    2024-01-15 20:46:23
  • Golang连接并操作PostgreSQL数据库基本操作

    2024-01-21 07:41:49
  • vue初尝试--项目结构(推荐)

    2024-05-09 15:15:27
  • 基于python SMTP实现自动发送邮件教程解析

    2023-03-08 20:15:02
  • MySQL学习之事务与并发控制

    2024-01-27 22:36:39
  • k8s容器互联flannel vxlan通信原理

    2024-05-08 10:46:01
  • 在微信小程序里使用watch和computed的方法

    2024-04-10 16:16:40
  • ChatGPT与Remix Api服务在浏览器url地址中对话详解

    2023-06-23 12:35:50
  • Python实现获取弹幕的两种方式分享

    2022-10-29 23:25:03
  • Go数组与切片轻松掌握

    2024-02-12 19:55:36
  • mysql日志文件General_log和Binlog开启及详解

    2024-01-17 08:20:44
  • Python下利用BeautifulSoup解析HTML的实现

    2021-11-20 03:33:54
  • js 数值项目的格式化函数代码

    2023-07-14 16:51:31
  • js省市联动效果完整实例代码

    2024-04-18 10:15:34
  • asp之家 网络编程 m.aspxhome.com