这篇文章将为大家详细讲解有关Node.js中的全局对象是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

建网站原本是网站策划师、网络程序员、网页设计师等,应用各种网络程序开发技术和网页设计技术配合操作的协同工作。成都创新互联专业提供网站设计、成都做网站,网页设计,网站制作(企业站、响应式网站、电商门户网站)等服务,从网站深度策划、搜索引擎友好度优化到用户体验的提升,我们力求做到极致!
所谓全局对象,就是可以直接访问的对象,比如
浏览器中的的全局对象就是window
Node 中的全局对象就是global
下面让我们看看 Node 的全局对象具体有哪些? 这些对象又有什么用?【推荐学习:《nodejs 教程》】
在某些老项目中,我们可能看到这样的代码片段
const getGlobalThis = () => {
// 在 webworker 或 service worker 中
if (typeof self !== "undefined") return self;
// 在浏览器中
if (typeof window !== "undefined") return window;
// 在 Node.js 中
if (typeof global !== "undefined") return global;
// 独立的 JavaScript shell
if (typeof this !== "undefined") return this;
throw new Error("Unable to locate global object");
};
const theGlobalThis = getGlobalThis();
if (typeof theGlobalThis.setTimeout !== "function") {
// 此环境中没有 setTimeout 方法!
}这是因为各个 JS 环境获取全局对象的方式都是不同的,所以通过封装了一个getGlobalThis来统一获取所有环境的全局对象
但是自从 ES13 特性出现后,支持使用globalThis 这种标准的方式来获取不同环境下的全局 this 对象(也就是全局对象自身)
if (typeof globalThis.setTimeout !== "function") {
// 此环境中没有 setTimeout 方法!
}Node.js 的全局变量与 Chrome 有一些差点,但也有很多类似的
我们启动一个简易的 Node 项目,然后打印如下的东西,看看能否正常输出
Date 对象 ✅
console.log(Date); // [Function: Date]
Math 对象 ✅
console.log(Math);
// Object [Math] {}setTimeout 对象 ✅
console.log(setTimeout);
/*
[Function: setTimeout] {
[Symbol(nodejs.util.promisify.custom)]: [Function]
}
*/setInterval 对象 ✅
console.log(setInterval); // [Function: setInterval]
setImmediate 对象 ✅
console.log(setImmediate);
/*
[Function: setImmediate] {
[Symbol(nodejs.util.promisify.custom)]: [Function]
}
*/requestAnimationFrame 对象 ❌
requestAnimationFrame代表浏览器渲染的下一帧,所以在服务端环境是不存在的
// 浏览器渲染的下一帧,所以在服务端环境中是不存在的 console.log(requestAnimationFrame); // ReferenceError: requestAnimationFrame is not defined
// 当前代码所运行的脚本位置 console.log(__filename); // D:\MyCode\Gitee\Learning.Node\geek-nodejs\08\index.js // 当前代码所运行的脚本目录 console.log(__dirname); // D:\MyCode\Gitee\Learning.Node\geek-nodejs\08
console.log(process);
version: Node.js 版本号platform , arch: 运行环境的操作系统kill , exit : 用于管理,或者杀进程的操作hrtime: 用于统计时间,可以精确到微秒级cpuUsage: CPU 占用率resourceUsage: 内存占用率env: Node 的环境变量,作用:可以设置环境变量,以便在不同的开发中使用argv:用户在启动程序时,敲击的命令是怎样的, 作用:命令行程序中使用
........................
关于“Node.js中的全局对象是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。