`
mywebcode
  • 浏览: 999928 次
文章分类
社区版块
存档分类
最新评论

node.js第七课(全局对象和全局变量)

 
阅读更多


概念:所有属性都可以在程序的任何地方访问,即全局变量。在JavaScript中,通常window是全局对象,而Node.js的全局对象是global,
所有全局变量都是global对象的属性,如:console、process等。
一、全局对象与全局变量
global最根本的作用是作为全局变量的宿主。满足以下条件成为全局变量:
1.在最外层定义的变量
2.全局对象的属性
3.隐式定义的变量(未定义直接赋值的变量)
在Node.js中不可能在最外层定义变量,因为所有用户代码都是属于当前模块的,而模块本身不是最外层上下文。
二、process
它用于描述当前Node.js进程状态的对象。提供了一个与操作系统的简单接口,通常写本地命令行程序的时候,会用到它。
1.process.argv是命令行参数数组,第一个元素是node,第二个元素是脚本文件名,第三个元素开始每个元素是一个运行参数。
2.process.stdout是标准输出流,通常我们使用的console.log() 其底层是用 process.stdout.write();实现。

//process.stdout.write("octopus");
3.process.stdin是标准输入流,初始时它是被暂停的。要想从标准输入流读取数据,必须恢复流,并手动编写流的事件相应函数。

//恢复流

process.stdin.resume();

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

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

});
4.process.nextTick(callback)的功能是为事件循环设置一项任务。Node.js会在下次事件循环调响应时调用callback
Node.js适合IO密集型的应用,而不是计算密集型的应用。process.nextTick()提供了一个这样工具,可以把复杂的工作拆散,

变成一个个较小的事件。

function doSomething(args,callback){
somethingComplited(args);
callback();
}
doSomething('12345',function onEnd(){
compute();
})
如果假设compute()和somethingComplited()是两个较为耗时的函数。以上的程序在调用doSomething时会先执行somethingComplited(args),然后立即调用回调函数,
在onEnd()中又会执行compute(),改写为:


function doSomething(args,callback){
somethingComplited(args);
process.nextTick(callback);
}
使用process.nextTick()后,改写后的程序会把上面耗时的操作拆分为两个事件,减少每个事件的执行时间,提高事件相应速度。

5.process其他方法:process.platform()、process.pid()、process.execPath()、process.memoryUsage()等方法。。。
API链接:
http://nodejs.org/api/process.html

三、console
java中的log4j的 Logger logger=LoggerManager.getLogger(*.class.getName());
logger.info
logger.warn
logger.error logger.fatal
FATAL:用在极端的情形中,即必须马上获得注意的情况。这个程度的错误通常需要触发运维工程师的寻呼机。

ERROR:显示一个错误,或一个通用的错误情况,但还不至于会将系统挂起。这种程度的错误一般会触发邮件的发送,

将消息发送到alertlist中,运维人员可以在文档中记录这个bug并提交。

WARN:不一定是一个bug,但是有人可能会想要知道这一情况。如果有人在读log文件,他们通常会希望读到系统出现的任何警告。

INFO用于基本的、高层次的诊断信息。在长时间运行的代码段开始运行及结束运行时应该产生消息,以便知道现在系统在干什么。

但是这样的信息不宜太过频繁。

DEBUG:用于协助低层次的调试。


console用于提供控制台标准输出,Node.js沿用了这个标准,提供与习惯行为一直的console对象。
1.console.log().向标准输出流打印字符并以换行符结束。
使用案例:
console.log("hello");
console.log("hello%octopus");
console.log("hello%octopus"," Mr. ");
2.console.error();用法与console.log()相同,只是向标准错误流输出。
3.console. trace();向标准错误流输出当前的调用栈


分享到:
评论

相关推荐

    Node.js 开发指南.pdf

    4.1.1 全局对象与全局变量 58 4.1.2 process 58 4.1.3 console 60 4.2 常用工具util 61 4.2.1 util.inherits 61 4.2.2 util.inspect 62 4.3 事件驱动events 63 4.3.1 事件发射器 64 4.3.2 error...

    Node.js+开发指南

    4.1.1 全局对象与全局变量 58 4.1.2 process 58 4.1.3 console 60 4.2 常用工具util 61 4.2.1 util.inherits 61 4.2.2 util.inspect 62 4.3 事件驱动events 63 4.3.1 事件发射器 64 4.3.2 ...

    详解nuxt sass全局变量(公共scss解决方案)

    恩,经过朋友的帮助搞定的,因为 nuxt资料比较少的原因,很感谢 “包子”的帮助 注意 本案例 只是把你通用 的 比如  $colour :#009688 #5FB878 #393D49 #1E9FFF #F7B824 #FF5722 ;...第一步新建文件夹

    JavaScript 权威指南(第四版).pdf

     第7章 数组144  7.1 创建数组 144  7.2 数组元素的读和写145  7.3 稀疏数组147  7.4 数组长度148  7.5 数组元素的添加和删除149  7.6 数组遍历149  7.7 多维数组151  7.8 数组方法152  7.9 ECMAScript 5...

    《javaScrip开发技术大全》源代码

    第7章(\代码\第07章) • sample01.htm 单支选择的if语句 • sample02.htm if…else语句 • sample03.htm if…else if语句 • sample04.htm if…else if…else语句 • sample05....

    JavaScript基础和实例代码

    第7章 Window及相关顶级对象 7.1 顶级对象模型参考 7.2 Window对象 7.2.1 警告框 7.2.2 确认框 7.2.3 提示框 7.2.4 实例:学生信息采集系统 7.2.5 设定时间间隔 7.2.6 事件超时控制 7.2.7 创建和管理新窗口 7.2.8 ...

    源文件程序天下JAVASCRIPT实例自学手册

    第7章 Window及相关顶级对象 7.1 顶级对象模型参考 7.2 Window对象 7.2.1 警告框 7.2.2 确认框 7.2.3 提示框 7.2.4 实例:学生信息采集系统 7.2.5 设定时间间隔 7.2.6 事件超时控制 7.2.7 创建和管理新窗口 7.2.8 ...

    JavaScript权威指南(第6版)(附源码)

    第7章 数组 7.1 创建数组 7.2 数组元素的读和写 7.3 稀疏数组 7.4 数组长度 7.5 数组元素的添加和删除 7.6 数组遍历 7.7 多维数组 7.8 数组方法 7.9 ECMAScript 5中的数组方法 7.10 数组类型 7.11 类数组对象 7.12 ...

    JavaScript权威指南(第6版)中文版pdf+源代码

     第7章 数组144  7.1 创建数组 144  7.2 数组元素的读和写145  7.3 稀疏数组147  7.4 数组长度148  7.5 数组元素的添加和删除149  7.6 数组遍历149  7.7 多维数组151  7.8 数组方法152  7.9 ECMAScript 5...

    JavaScript权威指南(第6版)

    第7章 数组 7.1 创建数组 7.2 数组元素的读和写 7.3 稀疏数组 7.4 数组长度 7.5 数组元素的添加和删除 7.6 数组遍历 7.7 多维数组 7.8 数组方法 7.9 ECMAScript 5中的数组方法 7.10 数组类型 7.11 类数组对象 7.12 ...

    JavaScript权威指南(第6版)(中文版)

    第7章 数组 7.1 创建数组 7.2 数组元素的读和写 7.3 稀疏数组 7.4 数组长度 7.5 数组元素的添加和删除 7.6 数组遍历 7.7 多维数组 7.8 数组方法 7.9 ECMAScript 5中的数组方法 7.10 数组类型 7.11 类数组对象 7.12 ...

    JavaScript权威指南(第6版)中文文字版

    第7章 数组 144 7.1 创建数组 144 7.2 数组元素的读和写 145 7.3 稀疏数组 147 7.4 数组长度 148 7.5 数组元素的添加和删除 149 7.6 数组遍历 149 7.7 多维数组 151 7.8 数组方法 152 7.9 ecmascript 5中的数组方法 ...

    JavaScript笔记

    JavaScript:定义行为和动作 (基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是...

    JavaScript权威指南(第六版) 清晰-完整

    第7章 数组 7.1 创建数组 7.2 数组元素的读和写 7.3 稀疏数组 7.4 数组长度 7.5 数组元素的添加和删除 7.6 数组遍历 7.7 多维数组 7.8 数组方法 7.9 ECMAScript 5中的数组方法 7.10 数组类型 7.11 类数组对象 7.12 ...

    Xpage学习笔记

    也就是说要改变树的模型并将模型数据保存,那么应该编写onDndDrop的处理函数(通过增加jsId获得dndController会出现this.avaria is null 错误,所以下面通过小部件初始化时将dndController传递给变量controller): ...

    JavaScript权威指南(第6版) 中文版

    第7章 数组 144 7.1 创建数组 144 7.2 数组元素的读和写 145 7.3 稀疏数组 147 7.4 数组长度 148 7.5 数组元素的添加和删除 149 7.6 数组遍历 149 7.7 多维数组 151 7.8 数组方法 152 7.9 ecmascript 5中的数组方法 ...

    JavaScript权威指南(第6版)

    第7章 数组 144 7.1 创建数组 144 7.2 数组元素的读和写 145 7.3 稀疏数组 147 7.4 数组长度 148 7.5 数组元素的添加和删除 149 7.6 数组遍历 149 7.7 多维数组 151 7.8 数组方法 152 7.9 ecmascript 5中的数组方法 ...

    freemarker总结

    后紧跟内建函数,就可以通过内建函数来轮换输出变量.下面是常用的内建的字符串函数: html:对字符串进行HTML编码 cap_first:使字符串第一个字母大写 lower_case:将字符串转换成小写 upper_case:将字符串转换成大写...

Global site tag (gtag.js) - Google Analytics