了解下node中的全局函数。在浏览器JavaScript中,通常window是全局对象, 而Node.js中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。在 Node.js 我们可以直接访问到 global 的属性,而不需要在应用中包含它。
node中提供的全局函数有哪些?
定时器函数:共有4个,分别是setTimeout(), clearTimeout(), setInterval(), clearInterval()。
require:用于加载模块。
setTimeout(cb, ms)
setTimeout(cb, ms)全局函数在指定的毫秒(ms)数后执行指定函数(cb)。:setTimeout() 只执行一次指定函数。返回一个代表定时器的句柄值。
实例
创建文件 main.js ,代码如下所示:
function printHello(){ console.log( "Hello, World!"); } // 两秒后执行以上函数 setTimeout(printHello, 2000);
执行 main.js 文件,代码如下所示:
$ node main.js Hello, World!
clearTimeout(t)
clearTimeout( t )全局函数用于停止一个之前通过 setTimeout() 创建的定时器。 参数 t 是通过 setTimeout() 函数创建的定时器。
实例
创建文件 main.js ,代码如下所示:
function printHello(){ console.log( "Hello, World!"); } // 两秒后执行以上函数 var t = setTimeout(printHello, 2000); // 清除定时器 clearTimeout(t);
执行 main.js 文件,代码如下所示:
$ node main.js
setInterval(cb, ms)
setInterval(cb, ms)全局函数在指定的毫秒(ms)数后执行指定函数(cb)。返回一个代表定时器的句柄值。可以使用 clearInterval(t) 函数来清除定时器。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
实例
创建文件 main.js ,代码如下所示:
function printHello(){ console.log( "Hello, World!"); } // 两秒后执行以上函数 setInterval(printHello, 2000);
执行 main.js 文件,代码如下所示:
$ node main.js
以上程序每隔两秒就会输出一次"Hello, World!",且会永久执行下去,直到你按下 ctrl + c 按钮。
require函数
参数为完整路径的模块文件名,或直接是模块名
require.main:用于检测一个模块是否为应用程序中的主模块(写在被检测的模块文件内部)
if(module === require.main){ console.log('true') }
对于相同模块的多次引用不会引起模块内代码的多次执行
require.resolve:查询某个模块文件的带有完整绝对路径的文件名。不过并不会加载该模块
require.resolve('./testModule.js')
require.cache对象:代表缓存了所有已被加载模块的缓存区
console.log(require.cache)
可以通过争名来访问某个模块
require.cache['模块文件名']
网友评论文明上网理性发言 已有0人参与
发表评论: