> For the complete documentation index, see [llms.txt](https://lochiwei.gitbook.io/web/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lochiwei.gitbook.io/web/js/concept/env.md).

# environment

[JS](/web/js.md) ⟩ [concepts](/web/browser/concepts.md) ⟩ environment

{% hint style="success" %}
JavaScript code can be run：

* in [browser](/web/browser.md) (**client** code)
* in [web worker](/web/browser/api/worker.md)
* in [Node.js](/web/js/concept/env/node.js.md) (**server** code)
  {% endhint %}

{% tabs %}
{% tab title="🔴 主題" %}

* <mark style="color:yellow;">**environments**</mark>
  * [browser](/web/browser.md) (client code)
  * [Node.js](/web/js/concept/env/node.js.md) (server code)
  * [web worker](/web/browser/api/worker.md)
  * [JS engine](/web/js/concept/env/js-engine.md)
    {% endtab %}

{% tab title="⭐️ 重點" %}
{% hint style="warning" %}
[global object](/web/js/scope/global/object.md) in each <mark style="color:purple;">**environment**</mark>：

* [browser](/web/browser.md)： [window](/web/js/scope/global/object/window.md) (a [`Window`](https://developer.mozilla.org/en-US/docs/Web/API/Window) object)
* [web worker](/web/browser/api/worker.md)： [self](/web/browser/api/worker/self.md) (a [`WorkerGlobalScope`](https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope) object)
* [Node.js](/web/js/concept/env/node.js.md)： [global](/web/js/scope/global/object/global.md) (an object called [`global`](https://nodejs.org/api/globals.html#globals_global))
  {% endhint %}

{% hint style="info" %}
every <mark style="color:purple;">**environment**</mark> exposes some of its own <mark style="color:yellow;">**built-ins**</mark> into the [global scope](/web/js/scope/global.md)：

* [browser](/web/browser.md)：<mark style="color:blue;">**`console`**</mark>, [DOM](/web/browser/dom.md)(including [window](/web/js/scope/global/object/window.md)), <mark style="color:yellow;">**timers**</mark>, [web API](/web/browser/api.md)
* [web worker](/web/browser/api/worker.md)：??? (anything else?)
* [Node.js](/web/js/concept/env/node.js.md)：???
  {% endhint %}
  {% endtab %}

{% tab title="📗 參考" %}

* [ ] [YDKJS: Scope & Closures (v.2)](/web/master/ref/book/you-dont-know-js-series-v.2/ydkjs-scope-and-closures-v.2.md) ⟩ Chapter 4: [Around the Global Scope](https://github.com/getify/You-Dont-Know-JS/blob/2nd-ed/scope-closures/ch4.md#chapter-4-around-the-global-scope)
  {% endtab %}

{% tab title="📘 手冊" %}

* [Global object](https://developer.mozilla.org/en-US/docs/Glossary/Global_object)
  {% endtab %}

{% tab title="🚧" %}

* [ ] console
* [ ] timers
  {% endtab %}
  {% endtabs %}
