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
相关推荐
湖边看客21 小时前
antd x6 + vue3
开发语言·javascript·vue.js
栀秋66621 小时前
当我把 proto 打印出来那一刻,我懂了JS的原型链
前端·javascript
小离a_a21 小时前
flex垂直布局,容器间距相等
开发语言·javascript·ecmascript
ErMao21 小时前
TypeScript的泛型工具集合
前端·javascript
重铸码农荣光1 天前
深入理解 JavaScript 原型链:从 Promise.all 到动态原型的实战探索
前端·javascript·promise
进击的野人1 天前
深入理解 Async/Await:现代 JavaScript 异步编程的优雅解决方案
javascript·面试·ecmascript 6
PineappleCoder1 天前
pnpm 凭啥吊打 npm/Yarn?前端包管理的 “硬链接魔法”,破解三大痛点
前端·javascript·前端工程化
CoolerWu1 天前
TRAE SOLO实战成功展示&总结:一个所见即所得的笔记软体
前端·javascript
北极糊的狐1 天前
Vue3 子组件修改父组件传递的对象并同步的方法汇总
前端·javascript·vue.js
Zyx20071 天前
JavaScript 作用域与闭包(下):闭包如何让变量“长生不老”
javascript