📜  Node.js 全局对象

📅  最后修改于: 2022-05-13 01:56:42.219000             🧑  作者: Mango

Node.js 全局对象

Node.js 是一个可用于服务器端脚本的开源项目。 Node.js 全局对象是所有模块中可用的对象。全局对象是 JavaScript 的一部分的内置对象,可以直接在应用程序中使用,而无需导入任何特定模块。下面列出了 Node.js 全局对象:

1.Class: Buffer Buffer 类是一个内置的全局可访问类,这意味着它可以在不导入任何模块的情况下使用。 Buffer 类用于处理二进制数据。缓冲区类对象用于将二进制数据表示为字节序列。

  • 控制台:它是一个内置的全局对象,用于打印到标准输出和标准错误。

  • process:它是一个内置的全局对象,是 EventEmitter 的一个实例,用于获取有关当前进程的信息。它也可以使用 require() 显式访问。

  • global:它是一个全局命名空间。在这个命名空间中定义一个变量使其可以全局访问。
var myvar

2 .在浏览器中声明为全局作用域。但是,在 node.js 文件中定义的任何变量只能在该文件中访问。

  • setImmediate() 方法:它安排回调的立即执行。回调函数按它们创建的顺序排队和执行。回调队列在每次事件循环迭代时处理。如果在执行回调中有一个定时器排队,定时器将不会被触发,直到下一次事件循环迭代。
  • clearImmediate() 方法:它停止 setImmediate() 方法返回的立即对象。
  • setInterval() 方法:它以重复的时间间隔执行回调函数。如果间隔大于 2147483647 或小于 1,则间隔设置为 1。非整数延迟被截断为最接近的整数。
  • clearInterval() 方法:它停止由 setInterval() 方法创建的间隔对象。
  • setTimeout() 方法:它是一个全局函数,用于在至少延迟毫秒后运行回调函数。 Node.js 不保证回调何时触发的确切时间,但会尝试将时间保持在尽可能接近指定延迟的位置。任何大于 2147483647 或小于 1 的延迟都会自动设置为 1。非整数延迟被截断为最接近的整数。
function printHello() {
   console.log( "Hello, World!");
}

// Now call above function after 2 seconds
var timeoutObj = setTimeout(printHello, 2000);

  • clearTimeout() 方法: clearTimeout() 方法用于取消或停止使用 setTimeout() 方法设置的超时。 timeoutObj 是 setTimeout() 方法返回的对象。
  • queueMicrotask() 方法:微任务是一个短函数,在回调函数退出后且仅当 JavaScript 执行堆栈为空时才执行。 queueMicrotask() 方法用于在回调函数成功完成后执行此类函数。如果回调函数没有将控制权返回给其他 JavaScript 代码,则事件循环将运行微任务队列中的所有微任务。每次事件循环迭代都会多次处理微任务队列。如果一个微任务将更多微任务添加到队列中,则新添加的微任务会在下一个任务运行之前执行。这是因为事件循环不断调用微任务,直到队列中没有剩余。
  • TextEncoder:它是 WHATWG 编码标准 TextEncoder API 的实现。 TextEncoder 的所有实例仅以 UTF-8 编码。

3.TextDecoder:它是WHATWG Encoding Standard TextDecoder API的一个实现。

4.Class: URL URL类实例是一个全局对象,由以下WHATWG URL Standard实现。 URL 构造函数创建一个新的 URL 对象,如下所示。 /foo 是输入, https://www.helloworld.og/是基值。

5.URLSearchParams:URLSearchParams API用于对URL的查询进行读写操作。

const myURL = new URL('https://www.register.com/?name=gfg');

// It prints gfg
console.log(myURL.searchParams.get('name'));

myURL.searchParams.append('name', 'xyz');

// It prints https://www.register.com/?name=gfg&name=xyz
console.log(myURL.href);

6.WebAssembly:作为所有 W3C WebAssembly 相关功能的命名空间的全局对象。 WebAssembly 是一种低级的类汇编语言,可以在现代浏览器上运行。

以下变量可能看起来是全局的,但实际上只存在于某些模块的范围内。

  • require(id) 方法:用于导入模块并返回“任意”数据类型的对象。
var express = require('express')
  • 导出:用于使用 module.exports 导出模块。
  • 模块:它是对当前模块的引用,不是全局的,而是每个模块的本地。它用于通过应用程序中的 require() 使特定模块可用。
  • __dirname:输出抛出一个错误,证明 __dirname 没有在 node.js 中全局定义。它需要一个脚本来提供所需的输出,因为 __dirname 仅在脚本中定义。

  • 创建一个 demo.js 文件
  • 粘贴以下代码:
console.log("__dirname : "+ __dirname);
  • 运行 demo.js 文件

7.__filename:输出抛出一个错误,证明__filename没有在node.js中全局定义。它需要一个脚本来提供所需的输出,因为 __filename 仅在脚本中定义。

  • 创建一个 demo.js 文件
  • 粘贴以下代码:
console.log("__filename : "+ __filename);
  • 运行 demo.js 文件