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
相关推荐
Mr.Jessy10 分钟前
JavaScript高级:构造函数与原型
开发语言·前端·javascript·学习·ecmascript
爱上妖精的尾巴3 小时前
6-4 WPS JS宏 不重复随机取值应用
开发语言·前端·javascript
三七吃山漆4 小时前
攻防世界——wife_wife
前端·javascript·web安全·网络安全·ctf
用户47949283569154 小时前
面试官问"try-catch影响性能吗",我用数据打脸
前端·javascript·面试
GISer_Jing5 小时前
前端营销技术实战:数据+AI实战指南
前端·javascript·人工智能
嘉琪0015 小时前
Vue3+JS 高级前端面试题
开发语言·前端·javascript
vipbic6 小时前
用 Turborepo 打造 Strapi 插件开发的极速全栈体验
前端·javascript
天涯学馆6 小时前
为什么 JavaScript 可以单线程却能处理异步?
前端·javascript
asdfg12589637 小时前
JS中的闭包应用
开发语言·前端·javascript
kirk_wang7 小时前
Flutter 导航锁踩坑实录:从断言失败到类型转换异常
前端·javascript·flutter