Node.js核心模块_全局变量、util学习
全局对象
javascript的全局对象是window,他及其所有属性都可以在程序的任何地方访问。即全局变量。
而在node中全局对象是global,所有全局变量都是global对象的属性,包括其本身。
global最根本的作用是作为全局变量的宿主。
- 全局变量应该满足的条件:
- 在最外层定义的变量
- 全局对象的属性
- 隐式定义的变量(未定义直接复制的变量)
在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学习的更多相关文章
- node.js核心模块
全局对象 global 是全局变量的宿主 全局变量 在最外层定义的 全局对象的属性 隐士定义的变量(未定义直接赋值的变量) 当定义一个全局变量时 这个变量同时也会成为全局对象的属性 反之亦然 注意: ...
- 10.Node.js核心模块
1.全局对象2.常用工具3.事件机制4.文件系统访问5.HTTP服务与客户端 一.全局对象(Global Object), 与window对象一样 process ==> 全局变量, 描述当前N ...
- Node.js核心模块-fs文件系统
fs是file-system的简写,文件系统的意思.在Node中如果想要进行文件操作,就必须引入fs这个核心模块. 引入 const fs = require('fs') fs.readFile(pa ...
- Node.js核心模块-http
通过node中的http模块可以创建编写服务器 引入 const http = require('http') http举例使用: const http = require('http') //引入 ...
- Node.js核心模块API之文件操作
参考:https://www.runoob.com/nodejs/nodejs-fs.html 异步I/O 1,文件操作 2,网络操作 在浏览器中也存在异步操作 1,定时任务 2,事件处理 3,Aja ...
- Node.js核心模块-net
net.Socket 类 socket.remotePort 访问服务器的远程端口 const http = require('http'); const server = http.createSe ...
- Node.js核心入门
前言: 因为以前学习Node.js并没有真正意义上的去学习它,而是粗略的学习了npm的常用命令和Node.js一些模块化的语法,因此昨天花了一天的时间看了<Node.js开发指南>一书.通 ...
- 《Node.js开发实战详解》学习笔记
<Node.js开发实战详解>学习笔记 ——持续更新中 一.NodeJS设计模式 1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直 ...
- node.js基础模块http、网页分析工具cherrio实现爬虫
node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言 说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherri ...
随机推荐
- jQuery方法find()与children()区别
一.find() 1.1 说明 find()方法返回被选元素的后代元素,一路向下直到最后一个后代. 1.2 示例 <div> <p> <span>1</spa ...
- ubuntu16.04的下载地址
官网不推荐 https://www.ubuntu.com/download 阿里云开源镜像站 http://mirrors.aliyun.com/ubuntu-releases/16.04/ 浙江大学 ...
- Latex技巧:在图表序号中加入章节号(实现诸如“图1.1.2”这样的图表序号)
平时看书经常看到"图1.2"这样的编号,含义是第1章的第2幅插图:或者"图1.1.2",含义是第1章第1节的第2幅插图.而在LaTeX中如果直接插图的话只会显示 ...
- 【转】Python爬虫(5)_性能相关
爬虫性能相关 一 背景知识 爬虫的本质就是一个socket客户端与服务端的通信过程,如果我们有多个url待爬取,采用串行的方式执行,只能等待爬取一个结束后才能继续下一个,效率会非常低. 需要强调的是: ...
- openstack ha 部署
一.控制节点架构如下图: 二.初始化环境: 1.配置IP地址: 1.节点1:ip addr add dev eth0 192.168.142.110/24 echo 'ip addr add dev ...
- linux中安装php
1.在php官网找到对应的php版本下载下来(php官网地址http://php.net) 2.把下载下来的安装包放入到linux系统中 3.解压php压缩包,通过tar -zxvf + 下载下来 ...
- js判断一个数组是否包含一个指定的值
今天看了一下 有好几种方法 总结一下 1:array.indexOf 此方法判断数组中是否存在某个值,如果存在返回数组元素的下标,否则返回-1 let arr = ['something', ...
- OPENGL ES2.0如何不使用glActiveTexture而显示多个图片
https://www.oschina.net/question/253717_72107 用opengl es 2.0显示多个图片的话,我只会一种方式,先将图片生成纹理,然后用下面的方式渲染 // ...
- 笔记:git和码云
背景:之前使用GitHub,无奈网速原因,有时候竟无法连接,搜索解决方案而又鱼龙混杂淹没在信息的海洋. 于是尝试码云,界面简单,全中文,用起来很是顺手. 码云使用git来管理,操作上都是git的基本指 ...
- 【iOS和HTML 5交互】iOS中加载html5调用html方法和修改html5内容
近期项目开发中用到了这方面的技术了,那我们一起来看看. 1.利用webView控件加载本地html5或者网络上html5 2.设置控制器为webView的代理,遵守协议 3.实现代理方法webView ...