JavaScript 中怎么判断前端各种运行环境

在 JavaScript 中,可以通过多种方式来判断前端应用的运行环境,比如浏览器环境、Node.js 环境、React Native 环境等。以下是一些常见的方法:

目录

[1. 判断是否在浏览器环境中](#1. 判断是否在浏览器环境中)

[2. 判断是否在 Node.js 环境中](#2. 判断是否在 Node.js 环境中)

[3. 判断是否在 React Native 环境中](#3. 判断是否在 React Native 环境中)

[4. 判断是否在 Electron 环境中](#4. 判断是否在 Electron 环境中)

[5. 判断是否在微信小程序环境中](#5. 判断是否在微信小程序环境中)

[6. 判断是否在 Vue.js 环境中](#6. 判断是否在 Vue.js 环境中)

[7. 判断是否在 Angular 环境中](#7. 判断是否在 Angular 环境中)

[8. 判断是否在 React 环境中](#8. 判断是否在 React 环境中)

[9. 开发环境与生产环境检测](#9. 开发环境与生产环境检测)

[10. 判断是否是移动端](#10. 判断是否是移动端)

[11. 判断是否是 iPad](#11. 判断是否是 iPad)

[12. 判断是否是 iPhone](#12. 判断是否是 iPhone)

[13. 判断是否是微信](#13. 判断是否是微信)

[14. 判断是否是 QQ](#14. 判断是否是 QQ)

[15. 判断是否是 iOS 设备](#15. 判断是否是 iOS 设备)

[16. 判断是否是 Android 设备](#16. 判断是否是 Android 设备)


1. 判断是否在浏览器环境中

使用 typeof window

javascript 复制代码
//window对象在浏览器中作为全局对象存在的特点,在Node.js环境中不存在的。
if (typeof window !== 'undefined') {
  console.log('Running in a browser environment');
} else {
  console.log('Not running in a browser environment');
}

使用 navigator.userAgent

javascript 复制代码
if (typeof navigator !== 'undefined' && navigator.userAgent) {
  console.log('Running in a browser environment');
} else {
  console.log('Not running in a browser environment');
}

2. 判断是否在 Node.js 环境中

使用 typeof moduletypeof require ``

javascript 复制代码
//Node.js环境有一个全局对象global,这在浏览器中是不存在的
if (typeof module !== 'undefined' && module.exports && typeof require === 'function') {
  console.log('Running in a Node.js environment');
} else {
  console.log('Not running in a Node.js environment');
}

3. 判断是否在 React Native 环境中

使用 typeof global

javascript 复制代码
if (typeof global !== 'undefined' && global.__fbBatchedBridge) {
  console.log('Running in a React Native environment');
} else {
  console.log('Not running in a React Native environment');
}

4. 判断是否在 Electron 环境中

使用 process.versions.electron

javascript 复制代码
if (typeof process !== 'undefined' && process.versions && process.versions.electron) {
  console.log('Running in an Electron environment');
} else {
  console.log('Not running in an Electron environment');
}

5. 判断是否在微信小程序环境中

使用 typeof wx

javascript 复制代码
if (typeof wx !== 'undefined' && wx.getSystemInfo) {
  console.log('Running in a WeChat Mini Program environment');
} else {
  console.log('Not running in a WeChat Mini Program environment');
}

6. 判断是否在 Vue.js 环境中

使用 Vue 对象

javascript 复制代码
if (typeof Vue !== 'undefined') {
  console.log('Running in a Vue.js environment');
} else {
  console.log('Not running in a Vue.js environment');
}

7. 判断是否在 Angular 环境中

使用 ng 对象

javascript 复制代码
if (typeof ng !== 'undefined') {
  console.log('Running in an Angular environment');
} else {
  console.log('Not running in an Angular environment');
}

8. 判断是否在 React 环境中

使用 React 对象

javascript 复制代码
if (typeof React !== 'undefined') {
  console.log('Running in a React environment');
} else {
  console.log('Not running in a React environment');
}

9 . 开发环境与生产环境检测

javascript 复制代码
                      //环境变量的命名实际情况而定
let isDev = process.env.VUE_APP_MODE == 'dev';
if (isDev) {
    // 开发环境相关的代码
} else {
    // 生产环境相关的代码
}

10. 判断是否是移动端

javascript 复制代码
function isMobile() {
  return /Mobi|Android/i.test(navigator.userAgent);
}

if (isMobile()) {
  console.log('Running on a mobile device');
} else {
  console.log('Not running on a mobile device');
}

11. 判断是否是 iPad

javascript 复制代码
function isiPad() {
  return /iPad/i.test(navigator.userAgent);
}

if (isiPad()) {
  console.log('Running on an iPad');
} else {
  console.log('Not running on an iPad');
}

12. 判断是否是 iPhone

javascript 复制代码
function isiPhone() {
  return /iPhone/i.test(navigator.userAgent) && !isiPad();
}

if (isiPhone()) {
  console.log('Running on an iPhone');
} else {
  console.log('Not running on an iPhone');
}

13. 判断是否是微信

javascript 复制代码
function isInWeChat() {
  return /MicroMessenger/i.test(navigator.userAgent);
}

if (isInWeChat()) {
  console.log('Running in WeChat');
} else {
  console.log('Not running in WeChat');
}

14. 判断是否是 QQ

javascript 复制代码
function isInQQ() {
  return /QQ/i.test(navigator.userAgent);
}

if (isInQQ()) {
  console.log('Running in QQ');
} else {
  console.log('Not running in QQ');
}

15. 判断是否是 iOS 设备

javascript 复制代码
function isiOS() {
  return /iPhone|iPad|iPod/i.test(navigator.userAgent);
}

if (isiOS()) {
  console.log('Running on an iOS device');
} else {
  console.log('Not running on an iOS device');
}

16. 判断是否是 Android 设备

javascript 复制代码
function isAndroid() {
  return /Android/i.test(navigator.userAgent);
}

if (isAndroid()) {
  console.log('Running on an Android device');
} else {
  console.log('Not running on an Android device');
}

通过这些方法,你可以根据不同的环境变量和全局对象来判断前端应用的运行环境。如有不足或错误请指出

相关推荐
每天都要喝奶茶22 分钟前
vue3uniapp实现自定义拱形底部导航栏,解决首次闪烁问题
前端·vue.js·uni-app
Southern Wind23 分钟前
H5页面在线预览pdf
javascript·pdf
May_Xu_23 分钟前
vue3+less使用主题定制(多主题定制)可切换主题
前端·javascript·vue.js·vue·less·css3
qq_4275060824 分钟前
less解决function中return写法在浏览器被识别成Object导致样式失败的问题
前端·css·less
Elastic 中国社区官方博客30 分钟前
将你的 Kibana Dev Console 请求导出到 Python 和 JavaScript 代码
大数据·开发语言·前端·javascript·python·elasticsearch·ecmascript
闲人陈二狗41 分钟前
vue3中的pinia的使用方法
开发语言·javascript·ecmascript
北京_宏哥1 小时前
《最新出炉》系列入门篇-Python+Playwright自动化测试-41-录制视频
前端·python·测试
小华同学ai1 小时前
jsMind:炸裂项目,用JavaScript构建的思维导图库,GitHub上的热门开源项目
javascript·开源·github
小霖家的混江龙1 小时前
Vite 打包 H5 如何注入版本号
前端·vite
夏河始溢1 小时前
一七一、React性能优化方式
javascript·react.js·性能优化