JavaScript 中有一个特殊的对象, 称为全局对象(Global Object), 它及其所有属性都可以在程序的任何地方访问, 即全局变量. 在浏览器 JavaScript 中, 通常 Windows 是全局对象.
而 Node.JS 中的全局对象是 global, 所有全局变量 (除了 global 本身以外) 都是 global 对象的属性. Node.JS 中, 我们可以直接访问到 global 的属性, 而不需要在应用中包含它. 那么 node 中有哪些全局函数?
node 全局函数:
1, 定时器函数:
共有 4 个, 分别是: setTimeout(), clearTimeout(), setInterval(), clearInterval().
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 按钮.
2,require 函数: 用于加载模块.
参数为完整路径的模块文件名, 或直接是模块名
require.main: 用于检测一个模块是否为应用程序中的主模块(写在被检测的模块文件内部)
- if(module === require.main){
- console.log('true')
- }
对于相同模块的多次引用不会引起模块内代码的多次执行
require.resolve: 查询某个模块文件的带有完整绝对路径的文件名. 不过并不会加载该模块
require.resolve('./testModule.js')
require.cache 对象: 代表缓存了所有已被加载模块的缓存区
console.log(require.cache)
可以通过争名来访问某个模块
require.cache['模块文件名']
来源: http://www.css88.com/qa/node-js/12859.html