📜  Node.js-全局对象

📅  最后修改于: 2020-11-03 10:09:22             🧑  作者: Mango


Node.js全局对象本质上是全局的,并且在所有模块中都可用。我们不需要在应用程序中包含这些对象,而是可以直接使用它们。这些对象是模块,函数,字符串和对象本身,如下所述。

__文件名

__filename表示正在执行的代码的文件名。这是此代码文件的解析绝对路径。对于主程序,此文件名不必与命令行中使用的文件名相同。模块内部的值是该模块文件的路径。

使用以下代码创建一个名为main.js的js文件-

// Let's try to print the value of __filename

console.log( __filename );

现在运行main.js以查看结果-

$ node main.js

根据程序的位置,它将打印主文件名,如下所示:

/web/com/1427091028_21099/main.js

__dirname

__dirname表示当前正在执行的脚本所在的目录的名称。

使用以下代码创建一个名为main.js的js文件-

// Let's try to print the value of __dirname

console.log( __dirname );

现在运行main.js以查看结果-

$ node main.js

根据程序的位置,它将打印当前目录名称,如下所示:

/web/com/1427091028_21099

setTimeout(cb,ms)

setTimeout(cb,ms)全局函数用于在至少ms毫秒后运行回调cb。实际延迟取决于外部因素,例如OS计时器粒度和系统负载。计时器的时间不能超过24.8天。

此函数返回代表计时器的不透明值,可用于清除计时器。

使用以下代码创建一个名为main.js的js文件-

function printHello() {
   console.log( "Hello, World!");
}

// Now call above function after 2 seconds
setTimeout(printHello, 2000);

现在运行main.js以查看结果-

$ node main.js

稍等一会儿,确认打印输出。

Hello, World!

clearTimeout(t)

clearTimeout(t)全局函数用于停止以前使用setTimeout()创建的计时器。这里t是setTimeout()函数返回的计时器。

使用以下代码创建一个名为main.js的js文件-

function printHello() {
   console.log( "Hello, World!");
}

// Now call above function after 2 seconds
var t = setTimeout(printHello, 2000);

// Now clear the timer
clearTimeout(t);

现在运行main.js以查看结果-

$ node main.js

验证输出,您将找不到打印的任何内容。

setInterval(cb,ms)

setInterval(cb,ms)全局函数用于在至少ms毫秒后重复运行回调cb。实际延迟取决于外部因素,例如OS计时器粒度和系统负载。计时器的时间不能超过24.8天。

此函数返回代表计时器的不透明值,可使用函数clearInterval(t)清除计时器。

使用以下代码创建一个名为main.js的js文件-

function printHello() {
   console.log( "Hello, World!");
}

// Now call above function after 2 seconds
setInterval(printHello, 2000);

现在运行main.js以查看结果-

$ node main.js

上面的程序每2秒执行一次printHello()。由于系统限制。

全局对象

下表提供了我们在应用程序中经常使用的其他对象的列表。有关更多详细信息,请参阅官方文档。

Sr.No. Module Name & Description
1 Console

Used to print information on stdout and stderr.

2 Process

Used to get information on current process. Provides multiple events related to process activities.