This is a cached version of https://developer.mozilla.org/en-US/docs/Glossary/Scope from 2/28/2026, 3:28:12 PM.
Scope - Glossary | MDN
The scope is the current context of execution in which values and expressions are "visible" or can be referenced. If a variable or expression is not in the current scope, it will not be available for use. Scopes can also be layered in a hierarchy, so that child scopes have access to parent scopes, but not vice versa.
Skip to main content Skip to search Scope The scope is the current context of execution in which values and expressions are "visible" or can be referenced. If a variable or expression is not in the current scope, it will not be available for use. Scopes can also be layered in a hierarchy, so that child scopes have access to parent scopes, but not vice versa. JavaScript has the following kinds of scopes: Global scope: The default scope for all code running in script mode. Module scope: The scope for code running in module mode. Function scope: The scope created with a function. In addition, identifiers declared with certain syntaxes, including let, const, class, or (in strict mode) function, can belong to an additional scope: Block scope: The scope created with a pair of curly braces (a block). A function creates a scope, so that (for example) a variable defined exclusively within the function cannot be accessed from outside the function or within other functions. For instance, the following is invalid: jsfunction exampleFunction() { const x = "declared inside function"; // x can only be used in exampleFunction console.log("Inside function"); console.log(x); } console.log(x); // Causes error However, the following code is valid due to the variable being declared outside the function, making it global: jsconst x = "declared outside function"; exampleFunction(); function exampleFunction() { console.log("Inside function"); console.log(x); } console.log("Outside function"); console.log(x); Blocks only scope let and const declarations, but not var declarations. js{ var x = 1; } console.log(x); // 1 js{ const x = 1; } console.log(x); // ReferenceError: x is not defined See also Scope (computer science) on Wikipedia Block scoping rules Help improve MDN Was this page helpful to you? Yes No Learn how to contribute This page was last modified on Jul 11, 2025 by MDN contributors. View this page on GitHub • Report a problem with this content