今天来讲一下全局对象
当我们写浏览器端 Javascript 时,全局对象是 window
,我们可以访问全局属性或方法,如 alert
scroll
setTimeout
等等。
而 Node.js 的全局对象不再是 window,因为已经不再是浏览器的环境。它的全局对象叫 global
,跟 window 对象一样可以访问开箱即用的方法。
Node.js 文档的 Global 页详细的列出我们可以使用的方法,如浏览器端 window 对象同样能使用的 setInterval
setTimeout
console
,global 对象还增加了不少方法。
下面让我们来试试:
假设我们 D
盘下有一个 app.js
文件
'D:\app.js'
console.log('hello to node.js');
在命令行进入文件所在路径( D 盘)并运行,即返回 hello to node.js
node app
'D:\app.js'
// global 可加可不加,但在 node.js 加且只能加 global 而非 window
global.setTimeout(function(){
console.log('3 秒已经过去');
}, 3000);
命令行运行,过 3 秒后返回 3 秒已经过去
node app
在命令行运行,每隔 2 秒后返回 2 秒已经过去
,停止进程可通过命令行输入ctlr+c
停止
'D:\app.js'
var time = 0;
setInterval(function(){
time +=2;
console.log(time +' 秒已经过去');
}, 2000);
node app
或者与浏览器 Javascript 相同, clearInterval
清除定时器
'D:\app.js'
var time = 0;
var timer = setInterval(function(){
if(time > 5){
clearInterval(timer); // 5 秒后停止
}
console.log(time +' 秒已经过去');
}, 2000);
几样更酷的,Node.js 可以告诉我们当前目录和文件
。
- 全局变量下的
__dirname
console.log(__dirname); // 输出当前文件所在路径
- 全局变量下的
__filename
console.log(__filename); // 输出当前文件路径,包含文件名
全局对象还有更多 API,之后的课程会继续覆盖,那,下节课见。
网友评论