Node.js后端开发 - 基础篇 #2 全局对象

369 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 ​

文章目录

一、前言

二、全局对象

1、console打印输出

2、setTimeout超时输出

3、setInterval循环间隔输出

4、clearInterval 清除循环间隔输出

5、__dirname输出当前所在目录

6、__filename输出当前所在文件目录


一、前言

上篇文章对nodejs做了简单介绍 Node.js后端开发 - 基础篇 #1 课程介绍与开发环境搭建,今天我们来看一下nodejs的全局对象,在浏览器中我们也有一个全局对象叫window,它里面的方法我们在哪里都可以调用,比如说console.log之类的,那么在nodejs中我们也有类似的全局对象,如下面这些,全都是全局对象,在哪里都可以调用,不用导入什么之类的!

​编辑

可参考nodejs的 api 地址:Global Objects | Node.js v9.11.2 Documentation

二、全局对象

1、console打印输出

我们来看一下,上篇文章里面写的一行nodejs的代码

console.log("hello world");

在这里这个console就是一个全局对象,它根本不用导入,我们在哪里都可以调用到它。下面我们看一下命令行输出

bogon:hello-nodejs luminal$ node app
hello world
bogon:hello-nodejs luminal$ node app.js
hello world
bogon:hello-nodejs luminal$ 

因为我们安装了nodejs,所以就有node命令了,node app( 文件名 )即可输出,不写.js的后缀也可以

2、setTimeout超时输出

setTimeout代码示例

setTimeout(() => {
    console.log(" 3秒 超时的输出内容!");
}, 3000);

输出内容

bogon:hello-nodejs luminal$ node app
 3秒 超时的输出内容!
bogon:hello-nodejs luminal$ 

其中,这个箭头函数 "=>" 是es6的写法,我们来看一下常规写法:

//es6写法
setTimeout(() => {
    console.log(" 3秒 超时的输出内容!");
}, 3000);

//常规写法
setTimeout(function() {
    console.log(" 3秒 超时的输出内容!");
}, 3000);

也就是说,这里setTimeout的第一个参数是一个方法,它是一个匿名方法,即不用带名字的方法

3、setInterval循环间隔输出

setInterval代码示例

setInterval(() => {
    console.log("每隔2秒 输出的内容!");
}, 2000);

说明代码意思是每隔2秒进行输出,我们来看一下输出结果:

bogon:hello-nodejs luminal$ node app
每隔2秒 输出的内容!
每隔2秒 输出的内容!
每隔2秒 输出的内容!

^C
bogon:hello-nodejs luminal$ 

值得注意的是,你要结束命令,可以执行 control + c 的快捷键。

下面我们加一个变量累加的效果,代码如下:

var time = 0;

setInterval(() => {
    time += 2;
    console.log(time + "每隔2秒 输出的内容!");
}, 2000);

我们来看一下输出结果:

ogon:hello-nodejs luminal$ node app
2每隔2秒 输出的内容!
4每隔2秒 输出的内容!
6每隔2秒 输出的内容!
8每隔2秒 输出的内容!
10每隔2秒 输出的内容!
12每隔2秒 输出的内容!
^C
bogon:hello-nodejs luminal$ 

4、clearInterval 清除循环间隔输出

clearInterval代码示例:

var time = 0;

var timeFlag = setInterval(() => {
    time += 2;
    console.log(time + "每隔2秒 输出的内容!");
    if(time>5){
        clearInterval(timeFlag);
    }
}, 2000);

我们来看一下输出结果:

bogon:hello-nodejs luminal$ node app
2每隔2秒 输出的内容!
4每隔2秒 输出的内容!
6每隔2秒 输出的内容!
bogon:hello-nodejs luminal$ 

5、__dirname输出当前所在目录

__dirname代码示例:

console.log(__dirname);

我们来看一下输出结果:

bogon:hello-nodejs luminal$ node app
/Users/luminal/Desktop/nodejs/hello-nodejs
bogon:hello-nodejs luminal$ ls
app.js
bogon:hello-nodejs luminal$ 

6、__filename输出当前所在文件目录

__filename代码示例:

console.log(__filename);

我们来看一下输出结果:

bogon:hello-nodejs luminal$ node app
/Users/luminal/Desktop/nodejs/hello-nodejs/app.js
bogon:hello-nodejs luminal$ 

除此之外require、exports等全局变量,这个会在讲解模块的时候会说到!

下一篇文章:[Node.js后端开发 - 基础篇 #3 回调函数]