Nodejs 第十章(全局变量)

简介: Nodejs 第十章(全局变量)

如何在nodejs定义全局变量呢?

在nodejs中使用global定义全局变量,定义的变量,可以在引入的文件中也可以访问到该变量,例如a.jsglobal.xxx = 'xxx'require('xxx.js') xxx.js 也可以访问到该变量,在浏览器中我们定义的全局变量都在window,nodejs在global,不同的环境还需要判断,于是在ECMAScript 2020 出现了一个globalThis全局变量,在nodejs环境会自动切换成global ,浏览器环境自动切换window非常方便

关于其他全局API

由于nodejs中没有DOM和BOM,除了这些API,其他的ECMAscriptAPI基本都能用

例如

setTimeout setInterval Promise Math  console  Date fetch(node v18) 等...

这些API 都是可以正常用的

nodejs内置全局API

__dirname

它表示当前模块的所在目录的绝对路径

__filename

它表示当前模块文件的绝对路径,包括文件名和文件扩展名

require module

引入模块和模块导出上一章已经详细讲过了

process
  1. process.argv: 这是一个包含命令行参数的数组。第一个元素是Node.js的执行路径,第二个元素是当前执行的JavaScript文件的路径,之后的元素是传递给脚本的命令行参数。
  2. process.env: 这是一个包含当前环境变量的对象。您可以通过process.env访问并操作环境变量。
  3. process.cwd(): 这个方法返回当前工作目录的路径。
  4. process.on(event, listener): 用于注册事件监听器。您可以使用process.on监听诸如exituncaughtException等事件,并在事件发生时执行相应的回调函数。
  5. process.exit([code]): 用于退出当前的Node.js进程。您可以提供一个可选的退出码作为参数。
  6. process.pid: 这个属性返回当前进程的PID(进程ID)。

这些只是process对象的一些常用属性和方法,还有其他许多属性和方法可用于监控进程、设置信号处理、发送IPC消息等。

需要注意的是,process对象是一个全局对象,可以在任何模块中直接访问,无需导入或定义。

Buffer
  1. 创建 Buffer 实例:
  • Buffer.alloc(size[, fill[, encoding]]): 创建一个指定大小的新的Buffer实例,初始内容为零。fill参数可用于填充缓冲区,encoding参数指定填充的字符编码。
  • Buffer.from(array): 创建一个包含给定数组的Buffer实例。
  • Buffer.from(string[, encoding]): 创建一个包含给定字符串的Buffer实例。
  1. 读取和写入数据:
  • buffer[index]: 通过索引读取或写入Buffer实例中的特定字节。
  • buffer.length: 获取Buffer实例的字节长度。
  • buffer.toString([encoding[, start[, end]]]): 将Buffer实例转换为字符串。
  1. 转换数据:
  • buffer.toJSON(): 将Buffer实例转换为JSON对象。
  • buffer.slice([start[, end]]): 返回一个新的Buffer实例,其中包含原始Buffer实例的部分内容。
  1. 其他方法:
  • Buffer.isBuffer(obj): 检查一个对象是否是Buffer实例。
  • Buffer.concat(list[, totalLength]): 将一组Buffer实例或字节数组连接起来形成一个新的Buffer实例。

请注意,从Node.js 6.0版本开始,Buffer构造函数的使用已被弃用,推荐使用Buffer.alloc()Buffer.from()等方法来创建Buffer实例。

Buffer类在处理文件、网络通信、加密和解密等操作中非常有用,尤其是在需要处理二进制数据时

目录
相关文章
Python黑魔法解密:深入探究元编程
【2月更文挑战第9天】在Python世界中,元编程是一种强大而神秘的技术。通过元编程,我们可以在运行时动态地创建、修改和操作代码,为程序增加灵活性和扩展性。本文将带您深入探究Python中的元编程,揭示其中的黑魔法,并展示其在实际应用中的威力。
56 3
通过 Cython 带你认清 Python 变量的本质
通过 Cython 带你认清 Python 变量的本质
60 8
Python模块化方式编程实践
【5月更文挑战第5天】Python模块化编程提升代码质量,包括:定义专注单一任务的模块;使用`import`导入模块;封装函数和类,明确命名便于重用;避免全局变量降低耦合;使用文档字符串增强可读性;为每个模块写单元测试确保正确性;重用模块作为库;定期维护更新以适应Python新版本。遵循这些实践,可提高代码可读性、重用性和可维护性。
93 2
js开发:请解释变量提升(hoisting)是什么,以及它是如何工作的。
JavaScript中的变量提升(Hoisting)在编译阶段将`var`声明的变量和函数声明提升到各自作用域顶部。变量默认值为`undefined`,函数声明可先调用后定义。但赋值、`let`和`const`以及函数表达式不被提升。现代实践建议避免依赖此特性,以增加代码可读性。
117 1
python中怎么使用作用域
python中怎么使用作用域
45 0
Python(二十五)python的全局变量和局部变量(变量作用域)
所谓作用域,就是变量的有效范围,就是变量可以在哪个范围以内使用。 有些变量可以在整段代码的任意位置使用,有些变量只能在函数内部使用,有些变量只能在 for 循环内部使用。 变量的作用域由变量的定义位置决定,在不同位置定义的变量,它的作用域是不一样的。 一:局部变量 在函数内部定义的变量,它的作用域也仅限于函数内部,出了函数就不能使用了,我们将这样的变量称为局部变量 要知道,当函数被执行时,Python 会为其分配一块临时的存储空间,所有在函数内部定义的变量,都会存储在这块空间中。 而在函数执行完毕后,这块临时存储空间随即会被释放并回收,该空间中存储的变量自然也就无法再被使用。 scss
157 1
LabVIEW编程语法学习笔记之全局变量
LabVIEW编程语法学习笔记之全局变量
277 0
Python 再谈变量作用域与变量引用
Python 再谈变量作用域与变量引用
105 0
唠唠python的作用域,看看每个变量都为自己打下了多少江山
不管是学习C/C++,java,在学习函数(方法)或者变量,都会学习到一个关于变量的知识--作用域,这基本是在所有编程语言中都会涉及到的概念.这关乎到你代码中变量的作用范围,在计算机世界中是必须要遵守一定的规则的,毕竟计算机是科技的产物,咱们是这是新时代,不兴旧时代地主劣绅强占豪夺那套,哈哈~~.回归正题,说到变量的作用域,那不得不了解关于函数的概念因为我们常见的变量作用域,一般是关于一个变量在函数内外的使用范围,其实我们对函数并不陌生,在初高中的时候我们在数学中就学过相关概念,表达式f(x)=y,是不是跟我们编程中的函数是很类似的,数学中描述是:'凡此变数中含彼变数者,则此为彼之函数'.大白
165 1
Python学习之路-函数-作用域
开发者学堂课程,了解Python语言的基本特性、编程环境的搭建、语法基础、算法基础等,了解Python的基本数据结构,对Python的网络编程与Web开发技术具备初步的知识,了解常用开发框架的基本特性,以及Python爬虫的基础知识。 课程地址:https://developer.aliyun.com/learning/course/601/detail/8730
Python学习之路-函数-作用域

热门文章

最新文章