如何在 JavaScript 中检查当前运行环境是浏览器?
在本文中,我们将了解如何检测 JavaScript 代码运行的运行时环境。假设您正在 Node.js 中构建应用程序,并且需要将该代码包含在将在浏览器上运行的网页中。这将导致 Node 应用程序的某些功能无法在浏览器上运行,反之亦然。
方法:没有函数、方法或属性来检测运行环境是否是浏览器,但是,我们可以做一些检查来识别脚本是否在浏览器中运行。 JavaScript 代码可以运行的一些环境是 Node.js、Service Workers 或 Web 浏览器。
每种环境都有不同的条件。我们将创建一个函数,该函数将返回一个布尔值,指示环境是否为浏览器。在这个函数中,
- 我们首先检查进程是否属于“object”类型,并且require的类型是否是使用typeof运算符的函数。当两个条件都为真时,环境是 Node.js,因此我们返回假。
- 我们同样通过检查importScripts的类型是否为函数来检查环境是否为服务工作者。如果条件匹配,我们再次返回 false。
- 最后,我们检查窗口的类型是否等于“对象”。 true 条件表示环境是浏览器,我们从函数返回 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;
}
}
例子:
HTML
Hello Geeks
输出: