一,JavaScript全局对象
在Javascript中有一个特殊的对象,称为全局对象。(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。
在浏览器Javascript中,通常window是全局对象。
二,Node.js全局对象
Node.js的全局对象是global,所有全局变量(除global本身以外)都是global对象的属性。
在Node.js 我们可以直接访问到global的属性,而不需要在应用中包含它。
三,全局对象与全局变量
1. global最根本的作用是作为全局变量的宿主。按照ECMAScript,满足以下条件的变量是全局变量:
1.1 在最外层定义的变量;
1.2 全局对象的属性;
1.3 隐式定义的变量;
当你定一个全局变量时,这个变量同时也会称为全局对象的属性,反之亦然。
需要注意的是,你在Node.js中你不可能在最外层定义变量,因为所有用户代码都属于当前模块的,而模块本身不是最外层上下文。
注意⚠️:永远使用var 定义变量,以避免一如全局变量,因为全局变量会污染命名空间,提高代码的耦合风险。
四,__filename
__filename 表示当前正在执行的脚本的文件名。
它将输出文件所在位置的绝对路径,且和命令行参数所制定的文件名不一定相同。
创建filename.js :
结果如下:
五,__dirname
__dirname表示当前执行脚本所在的目录。
例子:
创建dirname.js
输出结果:
六,setTimeout(cb, ms) 与 clearTimeout(t)
clearTimeout(t)全局函数用于停止一个之前通过setTimeout()创建的定时器。参数t是通过setTimeout()函数创建的定时器。
例子:
六,setInterval(cb, ms) 与 clearInterval(t)同理如上。
七,console
console.log('abc%abc', 111);
运行结果为
abc111abc
八,process
process是一个全局变量,即global对象的属性。
它用于描述当前Node.js 进程状态的对象。提供了一个与操作系统的简单接口。
通常你在本地写命令行程序的时候,少不了要和它打交道。
执行结果:
// 内存使用情况
process.memoryUsage()