如何判断js的运行环境-浏览器还是node?

本文通过分析axios源码,总结如何判断JavaScript是在浏览器还是Node.js环境中运行。axios的设计考虑了这两种场景,根据环境动态加载相应代码。文章提供了一种实现环境判断的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近看到这个问题,想到了之前看axios源码时的一些知识,因此,在这里做一下总结。

axios源码

function getDefaultAdapter() {
  var adapter;
  if (typeof XMLHttpRequest !== 'undefined') {
    // For browsers use XHR adapter
    adapter = require('./adapters/xhr');
  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {
    // For node use HTTP adapter
    adapter = require('./adapters/http');
  }
  return adapter;
}

这也是axios既可以用在浏览器,也可以用在node端的原因,axios在设计时就考虑了这2种情形,通过对环境的判断来动态加载代码。

基于上述启发,我们可以有:

if (typeof window === 'object'){
	// window只存在于浏览器端
}else if(Object.prototype.toString.call(process) === '[object process]'){
	//判断procss
}

这样就可以判断js的运行环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值