JavaScript 如何检查当前运行环境是否为浏览器
在本文中,我们将看到如何检测JavaScript代码运行的运行环境。假设你正在使用Node.js构建应用程序,并且需要将该代码包含在将在浏览器上运行的网页中。这将导致Node应用程序的一些功能在浏览器上不起作用,反之亦然。
方法: 没有函数、方法或属性可以检测运行环境是否为浏览器,但是我们可以进行一些检测来确定脚本是否在浏览器中运行。 JavaScript代码可以运行的一些环境包括Node.js、Service Workers或浏览器。
每种环境都有不同的条件。我们将创建一个函数,该函数将返回一个布尔值,指示环境是否为浏览器。在此函数中:
- 首先,我们检查
process的类型是否为“object”,并且检查require的类型是否为函数,使用typeof运算符。当两个条件都为真时,环境是Node.js,因此我们返回false。 - 我们类似地检查环境是否为service worker,检查
importScripts的类型是否为函数。如果条件匹配,我们再次返回false。 - 最后,我们检查
window的类型是否等于“object”。条件为真表示环境为浏览器,我们从函数中返回true。
语法:
function isBrowser() {
// Check if the environment is Node.js
if (typeof process === "object" &&
typeof require === "function") {
return false;
}
// Check if the environment is a
// Service worker
if (typeof importScripts === "function") {
return false;
}
// Check if the environment is a Browser
if (typeof window === "object") {
return true;
}
}
示例:
<!DOCTYPE html>
<html>
<body>
<h1>Hello Geeks</h1>
<script>
function isBrowser() {
// Check if the environment is Node.js
if (typeof process === "object" &&
typeof require === "function") {
return false;
}
// Check if the environment is
// a Service worker
if (typeof importScripts === "function") {
return false;
}
// Check if the environment is a Browser
if (typeof window === "object") {
return true;
}
}
// Calling a alert if the environment is Browser
if (isBrowser()) {
alert("The Environment is Browser....")
}
</script>
</body>
</html>
输出结果:

极客教程