node.js基础知识(二)

全局作用域及全局函数

1.node.js中的全局作用域

在node.js中存在全局作用域,即可以定义一些不需要任何模块的加载即可使用的变量、函数或类。同时,也预先定义了全局方法及全局类。
另外,node.js中定义了一个global对象,代表nodejs的全局命名空间。

console.log(global);//查看global对象中的内容

在REPL环境下定义一个全局变量及全局函数

>node    //回车进入REPL环境
> var test="this is global variable";   //全局变量的定义
> var testFun=function(){console.log(this is global fuction);};//定义全局函数

2.setTimeout函数和clearTimeout函数

setTimeout函数作用是在多少毫秒后执行某个回调函数:

setTimeout(cb,ms,[arg]...);
//参数说明:第一个为回调函数,第二个是时间单位毫秒,从第三个开始是需要向回调函数中传入的参数。

第二个参数是个整数,值必须在1~2147483647之前,如果值过大,则被修改成1.

clearTimeout方法:取消setTimeout方法,参数是setTImeout返回的定时器对象。

clearTimeout(timer);  //timer为setTImeout返回的定时器对象。

3.setInterval函数和clearInterval函数

setInterval方法作用是每隔多少毫秒执行一次函数,具体参见2.setTimeout函数和clearTimeout函数

4.定时器对象的unref方法和ref方法

setTimeout方法和setInterval方法均返回一个定时器函数, unref是取消setTimeout函数或setInterval函数中指定的回调函数的调用。

timer.unref();//取消
timer.ref();//调用

当定时器对象的unref方法取消回调函数的调用后,仍可使用ref方法恢复调用。回调函数的执行时间是在ref方法执行后的指定毫秒数执行(setTimeout)或ref方法执行后每隔指定毫秒数执行(setInterval)。

5.与模块相关的全局函数及对象

1.使用require函数加载模块

在node中,可以使用require函数来加载模块。

var foo=require('../foo.js');
//或
var http=require('http');

require函数使用一个参数,参数值可以为带完整路径的模块文件名,也可以是模块名。node将模块文件中定义的模块称为应用程序主模块。
在node中,定义了一个require.main变量用于检测一个模块是否为应用程序主模块。

if(module==require.mian){
console.log("This is main module of application.");
}

模块在首次加载后缓存在内存缓存区中,这就意味着,对于相同模块的多次引用不会引起模块内的代码的多次执行。如果想在每次调用时都执行一次模块内的某些代码,可以将这些代码指定在某个方法内,然后用export对象导出该方法,然后在引用模块后立即调用被引用模块的该方法。

//exp.js文件
var exp="hello export";
export.expTest=exp;
var test=require(../exp.js);
test.expTest();
2.使用require.resolve函数查询完整模块名
require.resolve('../exp.js');//得到带有改文件完整绝对路径的文件名。

使用require.resolve函数查询是不会加载该模块。

3.require.cache对象

该对象代表缓存了所有已被加载模块的缓存区。在REPL环境下,可以使用console.log(require.cache);查看缓存区的内容。
require.cache对象具有一个“键名/键值”结构,键名为每个模块的完整文件名,键值为各模块对象,可以通过键名来访问一个模块。

//require.cache[“模块文件名”];

require.cache[(require.resolve('./exp.js')];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值