当前位置: 首页 > news >正文

第32节 Node.js 全局对象

在Node.js中我们可以直接访问到全局对象。

这些对象在所有模块里都是可用的,有些对象不是在全局作用域而是在模块作用域里,这些情况将在本文的内容中进行介绍。

global

  • {Object} 全局命名空间对象。

在浏览器中,全局作用域就是顶级域。如果在全局域内定义变量var something将会是全局变量。而在Node中,顶级域并不是全局域;在模块里定义变量 var something只是模块内可用。

process

  • {Object}

进程对象。

console

  • {Object}

用来打印stdout和stderr。

Class: Buffer

  • {Function}

用来处理二进制数据。

require()

  • {Function}

引入模块。。require实际上并非全局的,而是各个本地模块有效。

require.resolve()

使用内部require()机制来查找module位置,但是不加载模块,只是返回解析过的文件名。

require.cache
  • {Object}

引入模块时会缓存到这个对象。通过删除该对象键值,下次调用require将会重载该模块。

require.extensions
稳定性: 0 - 抛弃
  • {Object}

指导require如何处理特定的文件扩展名。

.sjs文件当作.js文件处理:

require.extensions['.sjs'] = require.extensions['.js'];

抛弃 以前这个列表用来加载按需编译的非JavaScript模块到node。实际上,有更好的办法来解决这个问题,比如通过其他node程序来加载模块,或者提前编译成 JavaScript。

由于模块系统已经锁定,该功能可能永远不会去掉。改动它可能会产生bug,所以最好不要动它。

__filename

  • {String}

被执行的代码的文件名是相对路径。对于主程序来说,这和命令行里未必用同一个文件名。模块里的值是模块文件的路径。

列如,运行/Users/mjr里的node example.js

console.log(__filename);
// /Users/mjr/example.js

__filename不是全局的,而是模块本地的。

__dirname

  • {String}

执行的script代码所在的文件夹的名字。

列如,运行/Users/mjr里的node example.js

console.log(__dirname);
// /Users/mjr

__dirname不是全局的,而是模块本地的。

module

  • {Object}

当前模块的引用。通过require()module.exports定义了哪个模块输出可用。

module不是全局的,而是模块本地的。

exports

module.exports的引用。

module不是全局的,而是模块本地的。

setTimeout(cb, ms)

最少在ms毫秒后调回调函数。实际的延迟依赖于外部因素,比如操作系统的粒度和负载。

timeout值有效范围为1-2,147,483,647。如果超过该范围,将会变为1毫秒。通常,定时器不应该超过24.8天。

返回一个代表定时器的句柄值。

clearTimeout(t)

停止一个之前通过setTimeout()创建的定时器。不会再被执行回调。

setInterval(cb, ms)

每隔ms毫秒调用回调函数cb。实际的间隔依赖于外部因素,比如操作系统的粒度和系统负载。通常会大于ms

间隔值的有效范围在1-2,147,483,647。如果超过该范围,将会变为1毫秒。通常,定时器不应该超过24.8天。

返回一个代表该定时器的句柄值。

clearInterval(t)

停止一个之前通过setInterval()创建的定时器。不会再被执行回调。

http://www.xdnf.cn/news/1019899.html

相关文章:

  • Nginx 负载均衡、高可用及动静分离
  • CRM管理软件如何实现客户成功管理?
  • Unity3D仿星露谷物语开发62之添加NPC角色
  • 第六章 进阶21 奶茶周会没了奶茶
  • 如何用4 种可靠的方法更换 iPhone(2025 年指南)
  • Vuex相关知识点
  • Flutter项目编译到鸿蒙模拟器报错
  • Vue3 Element Plus 表格默认显示一行
  • Linux爬虫系统从开始到部署成功全流程
  • 国产智能体“双子星”:实在Agent vs Manus(核心架构与技术实现路径对比)
  • EFK架构日志采集系统
  • (nice!!!)(LeetCode 每日一题) 2616. 最小化数对的最大差值 (二分查找)
  • 基于C#+SQLServer2016实现(控制台)小型机票订票系统
  • 力扣面试150题--实现Trie(前缀树)
  • Git:现代开发的版本控制基石
  • Linux系统中自签名HTTPS证书
  • windows使用命令行查看进程信息
  • 高级定时器TIM1、TIM8
  • 什么是NIST CSF合规?ManageEngine卓豪合规指南!
  • 设备管理 -- Udev(二)U盘挂载
  • linux thermal framework(3)_thermal cooling device
  • WEBSOCKET研究
  • 传智健康---十天项目总结
  • 邮科OEM摄像头重塑楼宇安防价值链条
  • 010502管道符_防火墙出入站_不回显带外-渗透命令-基础入门-网络安全
  • 多模态大语言模型arxiv论文略读(120)
  • ArcPy 与 ArcGIS .NET SDK 读取 GDB 要素类坐标系失败?GDAL 外挂方案详解
  • 会计-收入-3-关于特定交易的会计处理
  • Flask应用中处理异步事件(后台线程+事件循环)的方法(2)
  • C# 使用HttpListener时候异常(此平台不支持此操作:System.PlatformNotSupportedException)