js判断全局环境

我们可能需要判断当前属于, window 环境, worker, 还有 node 环境等

可以使用如下代码进行判断, 拿到全局对象

js 复制代码
// The one and only way of getting global scope in all environments
// https://stackoverflow.com/q/3277182/1008999
var _global = typeof window === 'object' && window.window === window
  ? window : typeof self === 'object' && self.self === self
  ? self : typeof global === 'object' && global.global === global
  ? global
  : this

window环境下

js 复制代码
window.window === window  // true

node 环境下

js 复制代码
global.global === global // true

当然 node环境还有一个 globalThis


web worker 环境

js 复制代码
self.self === self // true
相关推荐
竹林81819 小时前
用Viem替换ethers.js:一次合约交互的"减负"实战,我总算把TypeScript类型搞明白了
前端·javascript
threelab19 小时前
Three.js 3D 热力图效果 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
Hello--_--World20 小时前
利用CDN进行首屏优化。能不能看CDN与本地服务器谁快用谁?
运维·服务器·前端·javascript·vite
我的世界洛天依20 小时前
胡桃讲编程 | 外挂的另一种方法与防御 —— 对象(JS ES262)
开发语言·javascript·ecmascript
Hello--_--World20 小时前
为什么 用vite进行分包后,可以通过 浏览器强制缓存 提高性能?路由懒加载进行的分包与 vite进行的分包有什么不同?
前端·javascript·缓存·vite
三*一20 小时前
Mapbox GL JS 前端多边形分割实战:从踩坑到优雅实现
开发语言·前端·javascript·vue.js
一棵树735121 小时前
js总结介绍
前端·javascript·html
白菜__21 小时前
微信小程序网关逆向分析
javascript·微信小程序·小程序·node.js·网络爬虫·微信网关·小程序网关
放下华子我只抽RuiKe521 小时前
React 从入门到生产(三):副作用与数据获取
前端·javascript·深度学习·react.js·开源·ecmascript·集成学习
Cobyte21 小时前
12.响应式系统演进:揭秘多级脏检查机制的设计哲学与实现原理(Vue3.4)
前端·javascript·vue.js