global
  在最外层定义的变量;
   全局对象的属性;
   隐式定义的变量(未定义直接赋值的变量)。
 一、process
   process 是一个全局变量,即 global 对象的属性。它用于描述当前 Node.js  进程状态
    的对象,提供了一个与操作系统的简单接口。
   process.argv是命令行参数数组,第一个元素是 node,第二个元素是脚本文件名,
    从第三个元素开始每个元素是一个运行参数
   process.stdout是标准输出流,通常我们使用的 console.log()  向标准输出打印
    字符,而  process.stdout.write()  函数提供了更底层的接口。
   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() 提供了一个这样的
  工具,可以把复杂的工作拆散,变成一个个较小的事件。
  
  var util = require('util')
  function Base(){
   this.name = 'songxiuuxan';
  }
  Base.prototype.getName = function () {
   console.info('soingxiuxuan');
  }

function Sub()
  {

}
  util.inherits(Sub,Base)
  b = new Sub();
  b.getName()
      console
   console.log() :向标准输出流打印字符并以换行符结束。console.log 接受若干
个参数,如果只有一个参数,则输出这个参数的字符串形式。如果有多个参数,则
以类似于 C 语言  printf() 命令的格式输出。第一个参数是一个字符串,如果没有
参数,只打印一个换行。
   console.log('Hello world');
   console.log('byvoid%diovyb');
   console.log('byvoid%diovyb', 1991);
      util
  util.inherits(constructor, superConstructor)是一个实现对象间原型继承
的函数。JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同。JavaScript 没有
提供对象继承的语言级别特性,而是通过原型复制来实现的,
  注意,Sub 仅仅继承了 Base 在原型中定义的函数,而构造函数内部创造的  base 属
性和  sayHello 函数都没有被  Sub 继承。同时,在原型中定义的属性不会被 console.log 作
为对象的属性输出。
  util.inspect(object,[showHidden],[depth],[colors]) 是一个将任意对象转换
为字符串的方法,通常用于调试和错误输出。它至少接受一个参数 object,即要转换的对象。

showHidden 是一个可选参数,如果值为  true,将会输出更多隐藏信息。
  depth  表示最大递归的层数,如果对象很复杂,你可以指定层数以控制输出信息的多
  少。如果不指定depth ,默认会递归2层,指定为 null  表示将不限递归层数完整遍历对象。
  如果color   值为  true,输出格式将会以 ANSI  颜色编码,通常用于在终端显示更漂亮
  的效果。
    除了以上我们介绍的几个函数之外,util还提供了util.isArray() 、util.isRegExp()、
  util.isDate() 、util.isError()  四个类型测试工具,以及 util.format()、util.
  debug()  等工具。
      events
 events 是 Node.js  最重要的模块,没有“之一”,原因是 Node.js  本身架构就是事件式
的,而它提供了唯一的接口,所以堪称 Node.js  事件编程的基石。events  模块不仅用于用
   var events = require('events')
   var emitter = new events.EventEmitter();
   emitter.on('someEvent',function (arg1,arg2) {
    console.info(arg1,arg2)
   })
   emitter.on('someEvent',function (arg1,arg2,arg3,arg4) {
    console.info(arg1,arg2,arg3,arg4)
   })
   emitter.on('someEvent',function (arg1,arg2,arg3) {
    console.info(arg1,arg2,arg3)
   })
   emitter.emit('someEvent',20,30,40,50)
   
   EventEmitter.on(event, listener) 为指定事件注册一个监听器,接受一个
   符串  event 和一个回调函数  listener 。
   EventEmitter.emit(ev ent, [arg1], [arg2], [...])  发射  event 事件,
   递若干可选参数到事件监听器的参数表。
   EventEmitter.once(event, listener)  为指定事件注册一个单次监听器,
   监听器最多只会触发一次,触发后立刻解除该监听器。
   EventEmitter.removeListener(event, listener)  移除指定事件的某个监
   器,listener 必须是该事件已经注册过的监听器。  
  EventEmitter.removeAllListeners([event])   移除所有事件的所有监听器,
   如果指定  event ,则移除指定事件的所有监听器。
     error事件:
  EventEmitter 定义了一个特殊的事件 error ,它包含了“错误”的语义,我们在遇到
  异常的时候通常会发射 error 事件。当 error  被发射时,EventEmitter 规定如果没有响
  应的监听器,Node.js 会把它当作异常,退出程序并打印调用栈。我们一般要为会发射 error 
  事件的对象设置监听器,避免遇到错误后整个程序崩溃。
     继承  EventEmitter
  大多数时候我们不会直接使用 EventEmitter,而是在对象中继承它。包括  fs、net 、
  http  在内的,只要是支持事件响应的核心模块都是  EventEmitter  的子类。
  为什么要这样做呢?原因有两点。首先,具有某个实体功能的对象实现事件符合语义,
  事件的监听和发射应该是一个对象的方法。其次 JavaScript  的对象机制是基于原型的,支持
  部分多重继承,继承  EventEmitter  不会打乱对象原有的继承关系。

开心菜鸟学习系列学习笔记------------nodejs util公共函数的更多相关文章

  1. 开心菜鸟学习系列笔记-----Javascript(1)

    js 一些常见的使用方法        // target : 不管是否出现冒泡,他都是代表最开始引发事件的对象   // this   : 是指当前函数.  //ie 事件对象   : window ...

  2. laravel5.8笔记六:公共函数和常量设置

    公共函数 创建bootstrap/common.php <?php // 发送短信 function sendSMS($mobile){ } // 发送邮件 function sendMail( ...

  3. 开心学习系列学习笔记-----nodejs缺点

    不支持故障恢复   不知你是否在调试的过程中注意,当程序有错误发生时,整个进程就会结束,需要重  新在终端中启动服务器.这一点在开发中无可厚非,但在产品环境下就是严重的问题  了,因为一旦用户访问时触 ...

  4. 菜鸟学习WCF笔记-概念

    背景 WCF这个词语一直不陌生,以前也使用过多次在实际的项目中,但是一直没有时间来做个系统的学习,最近抽点时间,看看 蒋金楠的<WCF全面解析>学习下,顺带做些笔记,如有错误,欢迎各路大神 ...

  5. 菜鸟学习WCF笔记-契约(Contract)

    契约,契约确保了服务的正常调用,客户端以契约的方式进行服务端调用,而服务则需要按照契约规定的方式提供服务. 契约是服务提供的一组操作的描述 功能上讲:每个操作对应着某个具体的功能实现,以及调用这个操作 ...

  6. 菜鸟学习WCF笔记-Address

    终结点是WCF最为核心的对象,因为它承载了所有通信功能.服务通过相应的终结点发布出来,客户端通过与之匹配的终结点对服务进行调用.终结点有地址.绑定和契约ABC三要素构成. Address  作为终结点 ...

  7. 开心菜鸟学习系列-----javascript(2)

    最小全局变量 :        1)每个javascript环境有一个全局对象,当你在任意的函数外面使用this的时候可以访问到,你创建的每一个全部变量都成了这个全局对象的属性,在浏览器中,方便起见, ...

  8. Python学习Day2笔记(字符编码和函数)

    1.字符编码 #ASCII码里只能存英文和特殊字符 不能存中文 存英文占1个字节 8位#中文编码为GBK 操作系统编码也为GBK#为了统一存储中文和英文和其他语言文字出现了万国码Unicode 所有一 ...

  9. 每天成长一点---WEB前端学习入门笔记

    WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...

随机推荐

  1. cf D. Valera and Fools

    http://codeforces.com/contest/369/problem/D 标号最小的两个人会有四种状态:a活b活,a死b活,a活b死,a死b死:按照这四种状态dfs就可以求出最后的数量. ...

  2. 吃午饭前,按书上的代码写会儿--Hunt the Wumpus第一个版本

    有空就要慢慢练起~~~~脑袋动起来是很快乐的事儿....:) <易学PYTHON>演练一遍. from random import choice cave_numbers = range( ...

  3. Windows下MySQL双向同步及环形同步的实现

    记录一下这次做的双向同步及环形同步吧,都是最简单的实现: 具体实现之前,先说些与之有关的内容吧,大部分内容都是网上的,操作步骤则是亲自测试之后记录下的: 一. 数据同步的几种方式: 1. 触发器,在数 ...

  4. Linux中应用程序如何使用系统调用syscall

    最近在做Android,其中一个任务是写一个能在Linux命令行运行的测试AP,运行这个AP就能关闭设备电源,即Power Off. 在 Linux内核中已经找到了关闭电源的函数kernel_powe ...

  5. 关于as3实现对任何对象进行深刻复制的思考

    无意中看到关于as3深度复制思考的文章,觉得不错,于是转来记录以后用到可以参考. 转载来源:http://xmchcly.iteye.com/blog/1307425,下面是转文: 通过 ByteAr ...

  6. 特征提取(Detect)、特征描述(Descriptor)、特征匹配(Match)的通俗解释

    特征匹配(Feature Match)是计算机视觉中很多应用的基础,比如说图像配准,摄像机跟踪,三维重建,物体识别,人脸识别,所以花一些时间去深入理解这个概念是不为过的.本文希望通过一种通俗易懂的方式 ...

  7. APP常用模块

    2016年上半年 APICloud合作云服务商提供了各种类型模块多达45个 其中最新发布的重要模块有 美洽客服模块 亲加视频直播相关模块 保利威视视频播放器模块 苹果银联支付模块 贝宝支付模块 谷歌分 ...

  8. rac_进行grid自检时提示运行runfixup.sh脚本一例

    原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明下面出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...

  9. 《31天成为IT服务达人》之技能篇硬件维护技能概要

     server维护技能 server硬件作为应用软件部署的基础平台,是基础架构中最为核心的设备.一旦server出现问题就会影响业务的正常开展.因此,server的运维管理对于企业整个IT运维管理 ...

  10. MongoDB 操作手冊CRUD插入

    插入操作 插入记录 1.插入一条记录 db.testData.insert({num:1,name:'a'}); 结果 WriteResult({ "nInserted" : 1 ...