通过判断 Global 对象是否为 window,
node 的全局对象为 global
浏览器的全局对象是 window
补充
补充:判断当前脚本运行环境的几种常用方式:
- 通过全局对象 :浏览器是
window(this在全局作用域指向 window),Node.js 是global(globalThis在 Node ≥ 12 才有)。- 通过 process 标识 :Node 有
process对象且process.versions.node存在;浏览器没有。- typeof window / typeof document :浏览器中
typeof window === 'object'且typeof document === 'object',Node 中两者都是 undefined。- 现代推荐 :使用
globalThis+ 特征判断,跨环境更稳。
// 简易判断
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
console.log('浏览器环境')
} else if (typeof process !== 'undefined' && process.versions && process.versions.node) {
console.log('Node.js 环境')
} else {
console.log('其他环境(Web Worker、小程序等)')
}
来源整理自:vue3js.cn 面试官系列



