全局对象

javascript的全局对象是window,他及其所有属性都可以在程序的任何地方访问。即全局变量。

而在node中全局对象是global,所有全局变量都是global对象的属性,包括其本身。

global最根本的作用是作为全局变量的宿主。

  • 全局变量应该满足的条件:
  1. 在最外层定义的变量
  2. 全局对象的属性
  3. 隐式定义的变量(未定义直接复制的变量)

    在node里不可能在最外层定义变量,因为所有的用户代码都属于当前模块的,而模块本身不是最外层上下文。
  • process

    process是一个全局变量,他是global的属性,是用来描述当前node进程状态的对象,提供了一个与操作系统的简单接口。通常用到在你血本地命令行程序的时候。

    process对象的一些最常用的成员方法:

    • process.argv

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

    • 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)的功能是为事件循环设置一项任务。

  • console

    console用于提供控制台标准输出。

    • console.log() :向标准输出流打印字符并以换行符结束
    • console.error(): 向标准错误流输出。
    • console.trace(): 向标准错误流输出当前调用栈。

常用工具util

util是一个node核心模块,提供常用的函数集合。

  • util.inherits()继承

    是一个实现对象间原型继承的函数,用法:

      var util = require('util');
    
      function Base(){
    this.name = 'base';
    this.base = 1990; this.sayHello = function(){
    console.log('hello' + this.name);
    };
    } Base.prototype.showName = function(){
    console.log(this.name);
    }; function Sub(){
    this.name = 'sub';
    } util.inherits(Sub, Base); var objBase = new Base();
    objBase.showName();
    objBase.sayHello();
    console.log(objBase); var objSub = new Sub();
    objSub.showName();
    /*objSub.sayHello();*/
    console.log(objSub);

Sub只能继承Base在原型中定义的函数

  • util.inspect()

    是一个将任意对象转换为字符串的方法,通常用于调试和错误输出。

      var util = require('util');
    
      function Person(){
    this.name = 'yehuihui'; this.toString = function(){
    return this.name;
    };
    } var obj = new Person(); console.log(util.inspect(obj));
    console.log(util.inspect(obj, true));

Node.js核心模块_全局变量、util学习的更多相关文章

  1. node.js核心模块

    全局对象 global 是全局变量的宿主 全局变量 在最外层定义的 全局对象的属性 隐士定义的变量(未定义直接赋值的变量) 当定义一个全局变量时 这个变量同时也会成为全局对象的属性 反之亦然 注意: ...

  2. 10.Node.js核心模块

    1.全局对象2.常用工具3.事件机制4.文件系统访问5.HTTP服务与客户端 一.全局对象(Global Object), 与window对象一样 process ==> 全局变量, 描述当前N ...

  3. Node.js核心模块-fs文件系统

    fs是file-system的简写,文件系统的意思.在Node中如果想要进行文件操作,就必须引入fs这个核心模块. 引入 const fs = require('fs') fs.readFile(pa ...

  4. Node.js核心模块-http

    通过node中的http模块可以创建编写服务器 引入 const http = require('http') http举例使用: const http = require('http') //引入 ...

  5. Node.js核心模块API之文件操作

    参考:https://www.runoob.com/nodejs/nodejs-fs.html 异步I/O 1,文件操作 2,网络操作 在浏览器中也存在异步操作 1,定时任务 2,事件处理 3,Aja ...

  6. Node.js核心模块-net

    net.Socket 类 socket.remotePort 访问服务器的远程端口 const http = require('http'); const server = http.createSe ...

  7. Node.js核心入门

    前言: 因为以前学习Node.js并没有真正意义上的去学习它,而是粗略的学习了npm的常用命令和Node.js一些模块化的语法,因此昨天花了一天的时间看了<Node.js开发指南>一书.通 ...

  8. 《Node.js开发实战详解》学习笔记

    <Node.js开发实战详解>学习笔记 ——持续更新中 一.NodeJS设计模式 1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直 ...

  9. node.js基础模块http、网页分析工具cherrio实现爬虫

    node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherri ...

随机推荐

  1. Qt 如何获取一个文件的 Icon 图标?

    #include <QPixmap> #include <QString> #include <QFileInfo> #include <QFileIconP ...

  2. MySQL中InnoDB脏页刷新机制Checkpoint

    我们知道InnoDB采用Write Ahead Log策略来防止宕机数据丢失,即事务提交时,先写重做日志,再修改内存数据页,这样就产生了脏页.既然有重做日志保证数据持久性,查询时也可以直接从缓冲池页中 ...

  3. MySQL中Btree和Hash的局限小结

    在索引中,Btree索引和Hash索引的局限性,在这里粗略罗列一下 1 Btree局限 B-树中的节点都是顺序存储的,所以可以利用索引进行查找(找某些值),也可以对查询结果进行ORDER BY(注意O ...

  4. matlab学习笔记之五种常见的图形绘制功能

    分类: 离散数据图形绘制 函数图形绘制 网格图形绘制 曲面图形绘制 特殊图形绘制 本文重点介绍matlab五种图形绘制方法的后三种. 一.网格图形绘制 以绘制函数z=f(x,y)三维网格图为例,下面为 ...

  5. swift笔记——环境搭建及Hello,Swift!

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/enson16855/article/details/29829601 首先要下载XCode6,仅仅有 ...

  6. zabbix-2.4.8-1添加nginx状态监控

    前期准备:nginx在编译是必须要加如下参数: 并且要在nginx的配置文件中添加如下配置: server { listen *: default_server; server_name localh ...

  7. Unicode与UTF-8/UTF-16/UTF-32的区别

    Unicode的最初目标,是用1个16位的编码来为超过65000字符提供映射.但这还不够,它不能覆盖全部历史上的文字,也不能解决传输的问题 (implantation head-ache's),尤其在 ...

  8. OpenGL学习进程(8)第六课:点、边和图形(三)绘制图形

    本节是OpenGL学习的第六个课时,下面介绍OpenGL图形的相关知识:     (1)多边形的概念: 多边形是由多条线段首尾相连而形成的闭合区域.OpenGL规定,一个多边形必须是一个“凸多边形”. ...

  9. 建议40:深入掌握ConfigParser

    # -*- coding:utf-8 -*- ''' 1.getboolean() 根据一定的规则将配置项的值转换为布尔值 getboolean() 的真值规则: 0.no.false 和off 都会 ...

  10. P3437 [POI2006]TET-Tetris 3D

    题目 P3437 [POI2006]TET-Tetris 3D 做法 一眼就是二维线段树,仔细想想,赋值操作怎么办??\(lazy\)标记放在一维,下一次又来放个标记二维就冲突了 正解:永久化标记 怎 ...