Check if the code is running in the browser

Look for the window and document globals.

JavaScriptBrowser · DOM Version 1.0.0 · MIT · .md

check-if-the-code-is-running-in-the-browser.js
function isBrowser() { return typeof window === 'object' && typeof document === 'object'; }

Usage

usage.js
isBrowser(); // → true

Lines marked → were executed in headless Chromium against the markup above, and each result was compared with the value shown. Lines marked e.g. are illustrative.

Know the limits

  • Returns false in web and service workers, which have no document, and in Node.js, as the unit tests confirm.
  • DOM emulators such as jsdom define both globals, so tests running under them see true.

The function above is the code the usage lines run. It does not validate its arguments; add checks where it receives untrusted input.

Source & maintenance

Based on Check if the code is running in the browser from the original 1loc collection by Nguyen Huu Phuoc. Copyright (c) 2020 phuoc-ng. MIT licensed.

Documented as a reference with executed usage lines. Original MDX retained as inert source evidence.

Maintained by Oveyon. Source commit: 14b481cf60df. Read the license.

Usage lines executed in headless Chromium against the fixture markup; no external services · reviewed October 28, 2026.

Keep exploring

Type two or more characters. Try “duplicate”, “webhook” or “retry”.