iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >Node.js中怎么实现一个全局对象
  • 873
分享到

Node.js中怎么实现一个全局对象

2024-04-02 19:04:59 873人浏览 安东尼
摘要

node.js中怎么实现一个全局对象,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。node.js 全局对象现在介绍 Node.

node.js中怎么实现一个全局对象,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

node.js 全局对象

现在介绍 Node.js 全局对象,global 全局对象无需引用就可以直接使用。

javascript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。

在浏览器 JavaScript 中,通常window 是全局对象, 而Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。

我们在Node.js 中能够直接访问到对象通常都是 global 的属性,如 console、process 等,

。。。

全局对象与全局变量

global 最根本的作用是作为全局变量的宿主。按照 ECMAScript 的定义,满足以下条件的变量是全局变量:

在最外层定义的变量;

全局对象的属性;Http://www.iis7.com/a/lm/yczmljgj/

隐式定义的变量(未定义直接赋值的变量)。

当你定义一个全局变量时,这个变量同时也会成为全局对象的属性,反之亦然。需要注 意的是,在Node.js 中你不可能在最外层定义变量,因为所有用户代码都是属于当前模块的, 而模块本身不是最外层上下文。

注意: 永远使用var 定义变量以避免引入全局变量,因为全局变量会污染 命名空间,提高代码的耦合风险。

。。。

process

process 是一个全局变量,即 global 对象的属性。

它用于描述当前Node.js 进程状态 的对象,提供了一个与操作系统的简单接口。通常在你写本地命令行程序的时候,少不了要 和它打交道。下面将会介绍process 对象的一些最常用的成员方法。

process.argv是命令行参数数组,第一个元素是 node,第二个元素是脚本文件名, 从第三个元素开始每个元素是一个运行参数。

console.log(process.argv); 

将以上代码存储为argv.js,通过以下命令运行:

$ node argv.js 1991 name=byvoid --v "Carbo Kuo" 

[ 'node', 

'/home/byvoid/argv.js', 

'1991', 

'name=byvoid', 

'--v', 

'Carbo Kuo' ]

process.stdout是标准输出流,通常我们使用的 console.log() 向标准输出打印 字符,而 process.stdout.write() 函数提供了更底层的接口。

process.stdin是标准输入流,初始时它是被暂停的,要想从标准输入读取数据, 你必须恢复流,并手动编写流的事件响应函数。

process.stdin.resume(); 

process.stdin.on('data', function(data) { 

process.stdout.write('read from console: ' + data.toString()); 

}); 

process.nextTick(callback)的功能是为事件循环设置一项任务,Node.js 会在 下次事件循环调响应时调用 callback。

初学者很可能不理解这个函数的作用,有什么任务不能在当下执行完,需要交给下次事 件循环响应来做呢?

我们讨论过,Node.js 适合I/O 密集型的应用,而不是计算密集型的应用, 因为一个Node.js 进程只有一个线程,因此在任何时刻都只有一个事件在执行。

如果这个事 件占用大量的CPU 时间,执行事件循环中的下一个事件就需要等待很久,因此Node.js 的一 个编程原则就是尽量缩短每个事件的执行时间。process.nextTick() 提供了一个这样的 工具,可以把复杂的工作拆散,变成一个个较小的事件。

functiondoSomething(args, callback) { 

  somethinGComplicated(args); 

  callback(); 

doSomething(functiononEnd() { 

  compute(); 

}); 

我们假设compute() 和somethingComplicated() 是两个较为耗时的函数,以上 的程序在调用 doSomething() 时会先执行somethingComplicated(),然后立即调用 回调函数,在 onEnd() 中又会执行 compute()。下面用process.nextTick() 改写上 面的程序:

functiondoSomething(args, callback) { 

   somethingComplicated(args); 

  process.nextTick(callback); 

doSomething(functiononEnd() { 

  compute(); 

}); 

改写后的程序会把上面耗时的操作拆分为两个事件,减少每个事件的执行时间,提高事 件响应速度。

注意: 不要使用setTimeout(fn,0)代替process.nextTick(callback), 前者比后者效率要低得多。

我们探讨了process对象常用的几个成员,除此之外process还展示了process.platfORM、 process.pid、process.execPath、process.memoryUsage() 等方法,以及POSIX 进程信号响应机制。有兴趣的读者可以访问http://nodejs.org/api/process.html 了解详细 内容。

。。。

console

console 用于提供控制台标准输出,它是由Internet Explorer 的JScript 引擎提供的调试 工具,后来逐渐成为浏览器的事实标准。

Node.js 沿用了这个标准,提供与习惯行为一致的 console 对象,用于向标准输出流(stdout)或标准错误流(stderr)输出字符。 ? console.log():向标准输出流打印字符并以换行符结束。

console.log 接受若干 个参数,如果只有一个参数,则输出这个参数的字符串形式。如果有多个参数,则 以类似于C 语言 printf() 命令的格式输出。

第一个参数是一个字符串,如果没有 参数,只打印一个换行。

console.error():与console.log() 用法相同,只是向标准错误流输出。

console.trace():向标准错误流输出当前的调用栈。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网html频道,感谢您对编程网的支持。

--结束END--

本文标题: Node.js中怎么实现一个全局对象

本文链接: http://www.lsjlt.com/news/74267.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node.js中怎么实现一个全局对象
    Node.js中怎么实现一个全局对象,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Node.js 全局对象现在介绍 Node....
    99+
    2024-04-02
  • Node.js中的全局对象是什么
    这篇文章将为大家详细讲解有关Node.js中的全局对象是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。所谓全局对象,就是可以直接访问的对象,比如浏览器中的的全局对象就...
    99+
    2024-04-02
  • Node.js 中全局对象如何使用
    这篇文章将为大家详细讲解有关Node.js 中全局对象如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Node.js 基础教程之全局对象在浏览器 Ja...
    99+
    2024-04-02
  • 一文详解node.js有哪些全局对象呢
    目录一、是什么二、有哪些真正的全局对象Class:BufferprocessconsoleclearInterval、setIntervalclearTimeout、setTimeo...
    99+
    2024-04-02
  • Vue中怎么实现一个全局loading组件
    Vue中怎么实现一个全局loading组件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。loading.js:import '...
    99+
    2024-04-02
  • MyCat 中怎么实现一个全局序列号
    这期内容当中小编将会给大家带来有关MyCat 中怎么实现一个全局序列号,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 本地文件方式原理:此方式 MyCAT 将 seq...
    99+
    2024-04-02
  • Node.js中怎么实现一个AMF
    Node.js中怎么实现一个AMF,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。首先定义服务器端的类和方法exports.sa...
    99+
    2024-04-02
  • Python中怎么实现一个字符串对象
    这期内容当中小编将会给大家带来有关Python中怎么实现一个字符串对象,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。PyStringObject 结构体Python 中的字符串对象在内部对应一个名叫 Py...
    99+
    2023-06-17
  • vue-cli 3中怎么实现一个全局过滤器
    vue-cli 3中怎么实现一个全局过滤器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、创建 filters.js首先新建一个filter...
    99+
    2024-04-02
  • nodeJS中怎么实现一个二进制buffer对象
    nodeJS中怎么实现一个二进制buffer对象,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 概述由于应用场景不同...
    99+
    2024-04-02
  • nodejs全局变量和全局对象怎么使用
    本篇内容主要讲解“nodejs全局变量和全局对象怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“nodejs全局变量和全局对象怎么使用”吧!1、全局对象所有模块都可以调用1)global:...
    99+
    2023-06-21
  • c++中怎么实现一个对象运行多个线程
    在C++中,可以使用线程库来实现一个对象运行多个线程。下面是一个简单的示例: #include #include class ...
    99+
    2023-10-25
    c++
  • Node.js中怎么实现一个express框架
    本篇文章给大家分享的是有关Node.js中怎么实现一个express框架,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。express的基本用法...
    99+
    2024-04-02
  • nodejs中的全局对象是什么
    本篇内容介绍了“nodejs中的全局对象是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Node.js...
    99+
    2024-04-02
  • Vue中怎么设置全局的cookie对象
    这篇文章主要介绍了Vue中怎么设置全局的cookie对象的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中怎么设置全局的cookie对象文章都会有所收获,下面我们一起来看看吧。Vue设置全局的cookie对...
    99+
    2023-07-04
  • Python中如何实现一个线程安全的缓存对象
    Python中如何实现一个线程安全的缓存对象随着多线程编程在Python中的越来越被广泛应用,线程安全性变得愈发重要。在并发环境中,多个线程同时读写共享资源时,可能会导致数据不一致或者意外的结果。为了解决这个问题,我们可以使用线程安全的缓存...
    99+
    2023-10-22
    线程安全 缓存对象 Python 实现
  • Node.js中Buffer对象怎么用
    小编给大家分享一下Node.js中Buffer对象怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Buffer 是 Node.js 的内置类型,它是用来表示内存中一块区域的,用以保存二...
    99+
    2024-04-02
  • Node.js全局可用变量、函数和对象实例代码分析
    今天小编给大家分享一下Node.js全局可用变量、函数和对象实例代码分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言在...
    99+
    2023-07-05
  • Node.js中怎么实现一个模块系统
    Node.js中怎么实现一个模块系统,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Node.js模块系统为了让Node.js的文件可以相互...
    99+
    2024-04-02
  • 在vue-test-utils中mock全局对象怎么用
    小编给大家分享一下在vue-test-utils中mock全局对象怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!vue-t...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作