📜  Node.js 的全局对象是什么?

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

Node.js 的全局对象是什么?

Node.js 是一个基于开源项目的 JavaScript 框架,用于服务器端脚本。 Node.js 全局对象是存在于所有模块中的那些对象。全局对象可以直接在应用程序中使用,无需导入任何模块。添加了全局对象,记住这些是一些基本要求,任何时候都可能需要这些,因此最好保持它们是全局的,而不是为这些对象添加特定的模块。全局对象是在首先构建框架时创建的,然后可以根据需求进行更新。全局对象负责框架的基本功能,无需导入任何模块或创建任何功能以满足某些主要要求。

下面列出了一些 Node.js 全局对象:

  1. Buffer类: Buffer 类是一个全局可访问的类。 Buffer 类主要用于处理二进制数据。 Buffer类的对象常用于以字节序列的形式表示二进制数据。

  2. 控制台:用于打印到stdout&stderr,是一个全局对象,无需导入任何模块即可访问。

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

  4. global:它是一个命名空间,在这个命名空间中定义一个变量使其成为一个全局变量。

    var myvar;
  5. setImmediate() 方法:回调的函数按照它们的创建顺序对齐执行。回调队列在事件循环的每次迭代中处理回调。它立即执行预定的回调。如果正在执行的回调被定时器绑定,则直到下一个循环的迭代实例化后才会触发定时器。

    Javascript


    Javascript


    Javascript


    Javascript


    Javascript


    Javascript


    输出:

  6. clearImmediate() 方法:通过停止对象对setImmediate() 方法返回的对象进行清除操作,即不执行该对象。

    Javascript

    
    

    输出:

  7. setInterval() 方法:如果间隔超过 int 数据类型的限制,即 2147483647 或者不是正整数,则间隔值设置为 1。它还将非整数延迟截断为最接近的整数,并执行回调函数重复的间隔。

    Javascript

    
    

    输出:

  8. clearInterval() 方法:通过取消对象对setInterval() 方法返回的对象执行清除操作,即不允许setInterval 执行一次。

    Javascript

    
    

    输出:

  9. setTimeout() 方法:如果延迟超过 int 数据类型的限制,即 2147483647 或者不是正整数,则延迟值设置为 1。它还将非整数延迟截断为最接近的整数,并执行回调函数重复的间隔,但不保证回调的确切时间。

    Javascript

    
    

    输出:

    Hi Geek
  10. clearTimeout() 方法: clearTimeout() 方法用于取消setTimeout() 方法返回的timeoutObj,使setTimeout 无法执行。

    Javascript

    
    

    输出:

    setTimeout msg will not be printed
  11. queueMicrotask() 方法:在回调函数退出且当 JavaScript 的执行堆栈为空时执行。此方法不会将控制权返回给 JavaScript,并且微任务队列可以循环处理多次,因为事件循环会不断调用队列中的微任务。

  12. URLSearchParams:这是一个对任何 URL 执行读写操作的 API。

    句法:

    const myURL = new URL('https://www.register.com/?name=nodejs');
     
    //It prints nodejs
    console.log(myURL.searchParams.get('name'));
    
    myURL.searchParams.append('name', 'xyz');
    
    // It prints https://www.register.com/?name=nodejs&name=xyz
    console.log(myURL.href);
  13. WebAssembly:这是现代浏览器支持的低级汇编语言,因此我们可以使用它来排列浏览器上的对象。

    以下变量仅存在于某些可能看起来是全局的模块的范围内。

    • require(id) 方法:它可以返回一个非特定数据类型的对象,用于将模块导入脚本。
    var express = require('express')
    • 导出:它可用于将脚本中存在的模块导出到任何其他脚本。
    • 模块:它用于使用 require() 方法包含特定模块,这不是本地的,而是每个模块的本地。
    • __dirname: __dirname 不是全局对象,这可以通过运行以下命令而不添加任何脚本来证明,因为这会引发错误,验证 __dirname 不是全局对象。
    Create a test.js file
    Write the following condole.log statement:  
    console.log("__dirname : "+ __dirname);
    Run the test.js file

    • __filename: __filename 不是全局对象,这可以通过运行以下命令而不添加任何脚本来证明,因为这将引发错误,验证 __filename 不是全局对象。
    Create a test.js file
    Write the following condole.log statement:  
    console.log("__filename : "+ __filename);
    Run the test.js file