第三章 nodejs基础知识(上)

本章主要介绍一些nodejs的基础知识:

1. 什么是nodejs中的控制台,如何向控制台进行标准输出流与标准错误输出流的输出;

2. 什么是nodejs中的全局作用域,在nodejs中预先提供了哪些全局函数以及全局变量;

3. 什么是nodejs中的事件处理机制以及事件环进制,如何在nodejs中为各种事件指定事件触发以及事件取消时执行的回调函数;

4. 如何使用nodejs 中的调试器进行应用程序的调试;



3.1 nodejs中的控制台


在nodejs中,使用console对象代表控制台。在nodejs中,可以通过console对象的各种方法向控制台中进行标准输出流与标准错误输出流的输出。


3.1.1 console.log方法

console.log("This is a test String")

该行代码将向控制台输出一行,“this is a test string."字符串。

可以将该行代码保存在一个脚本文件中,然后在命令行窗口中使用如下所示的命令来运行该脚本文件,例如

node apps.js

技术分享

1代表重定向标准输出流

技术分享

技术分享


//从第二个参数开始,依序输出所有字符串
console.log("%S","hoge","foo"); // 输出结果为hoge foo

//将对象转换为字符串后输出
console.log("%d","hoge",{foo:"FOO"}); // 输出结果为hoge ({foo:"FOO"})

//将数值住转换为字符串后输出,从第二个参数开始,依序输出所有数值
console.log("%d","hoge");  // 输出NAN

//输出百分号
console.log("%%","hoge"); //输出 % hoge

可以在console.log方法中使用各种运算符输出结果,也可以使用toString方法将变量值转换为字符串后进行输出,

console.log("2+2");  // 使用算术运算符,输出结果为4
console.log(2/0);   // 输出 Infinity

var a=1;
var b=2;
console.log(a=b); // <span style="color:#FF0000;">赋值运算符 输出为2,a变量值同时变成2</span>

//将数值变量a 与数值变量b 均转换为字符串后使用 + 运算符将两个字符串值链接后输出
console.log(a.toString()+b.toString());

var a=1;
var b="2";
console.log(a+b); // 将数值转换为字符串后与其他字符串相链接,输出结果为12;

var a = 1;
var b = 2;

console.log(a==b); // 使用比较运算符,输出false
console.log(a==1&b==2); // 使用逻辑运算符,输出true

另外,在nodejs中,console.info方法来代替console.log方法,这两个作用与使用方式完全相同

<span style="font-size:18px;"><strong>3.1.2 console.error方法</strong>
此方法用于进行标准错误输出流的输出,向控制台中输出一行错误信息</span>

<pre name="code" class="javascript">//console.err("This is an error string.");

<span style="font-size:18px;">意思和。log使用是一样的,也可以保存为一个js脚本文件,然后在dos窗口运行,这里不在过多演示</span>




技术分享

打开error.log文件

module.js:338
    throw err;
          ^
Error: Cannot find module 'D:\nodetest\script.js'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3
另外,与console.log方法一样,在console.error方法中也可以通过参数指定输出字符串的格式,可以使用参数与console.log方法中使用参数相同,可以使用各种运算符计算出结果,也可以使用toString()方法将变量值转换为字符串后进行输出。同样,console.warn可以替换console.error方法

3.1.3 console.dir方法

var user=new Object();
user.name="cuiwjava";
user.getName=function(){return this.name;};
user.setName=function(){this.name=name;};
console.dir(user);
//保存在一个脚本文件中,然后node XXX.js  我在这里用一个命令完成 .sace XXX.js //保存到当前目录下 上图
技术分享


技术分享


好啦,这样一个文件就生成啦!!

3.1.4 console.time 与 console.timeEnd方法

在nodejs中,需要统计一段代码执行时间时候,可以使用console.time方法与console.timeEnd方法,其中前者用于标识开始时间,后者标记结束时间,这之间经过的毫秒数会在控制台中输出:


console.time(label);
console.timeEnd(label);

俩个方法均使用一个参数,参数可以为任何字符串,但是这两个方法所使用的参数字符串必须相同,才能正确的统计时间。

技术分享

3.1.5 console.trace 方法

将当前栈信息作为标准错误信息进行输出,

<span style="font-size:18px;">console.trace(label);</span>


技术分享


3.1.6 console.assert方法

对一个表达式的执行结果进行评估,如果执行结果为false,则会抛出一个消息字符串异常:AssertionError;

技术分享

3.2 Node.js 中全局作用域以及全局函数

在一个模块中定义的变量,函数或者方法只在该模块中可用,但可以通过exports 对象的使用将其传递到模块外部

3.2.1nodejs中的全局变量

在nodejs中存在一个全局作用域,即可以定义一些不需要通过任何模块的加载即可使用的变量,函数或类。同时,也预先定义了一些全局方法以及全局类.

另外,在nodejs中,定义了一个global对象,代表nodejs中的全局命名空间,任何全局变量、函数或对象都是该对象的一个属性值。

console.log(global);

技术分享

这是所有全局变量、函数或对象

之后再使用全局调用查看 console.log(global);

技术分享



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。