zoukankan      html  css  js  c++  java
  • 开心菜鸟学习系列学习笔记------------nodejs util公共函数

      

       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  不会打乱对象原有的继承关系。

  • 相关阅读:
    KMP
    837B. Balanced Substring
    JDK7和JDK8新特性
    数据库索引的实现原理
    mysql索引总结----mysql 索引类型以及创建
    Java 8新特性终极指南
    类加载机制
    类加载过程
    深入理解java虚拟机 精华总结(面试)(转)
    几种常用的设计模式介绍(转)
  • 原文地址:https://www.cnblogs.com/kaixincainiao/p/3416380.html
Copyright © 2011-2022 走看看