理解全局作用域

简介: 【8月更文挑战第25天】

全局 JavaScript 变量:理解全局作用域

全局变量是在 JavaScript 函数外部声明的变量。它们属于全局作用域,可以在网页的所有脚本和函数中访问。全局变量是全局对象的属性,浏览器中的全局对象通常是 window 对象。

声明全局变量

全局变量使用 varletconst 关键字在函数外部声明。使用 var 声明的全局变量是最常见的,但 letconst 也被用于声明具有块级作用域的变量,尽管在全局上下文中,它们的块级作用域特性并不明显。

使用 var 声明全局变量:

var globalVar = "I'm a global variable";

使用 letconst 声明全局变量:

let globalLet = "I'm a global variable with let";
const globalConst = "I'm a global variable with const";

全局变量的访问

全局变量可以在任何函数内部直接访问,无需通过 window 对象(尽管通过 window 访问也是可能的)。

访问全局变量示例:

var globalVar = "Global";

function accessGlobal() {
   
    console.log(globalVar); // "Global"
}

accessGlobal();

全局变量和 window 对象

在浏览器中,全局变量自动成为 window 对象的属性。因此,可以通过 window 对象访问全局变量。

window 对象示例:

var globalVar = "I'm a global variable";

console.log(window.globalVar); // "I'm a global variable"

代码示例

以下是一个包含全局变量的 JavaScript 示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Global Variables Example</title>
    <script>
        // 声明全局变量
        var globalVar = "Hello, I'm global!";
        let globalLet = "I'm also global, with let!";
        const globalConst = "I'm a constant global value";

        // 函数内部访问全局变量
        function printGlobalVars() {
    
            console.log(globalVar);
            console.log(globalLet);
            console.log(globalConst);
        }

        // 通过 window 对象访问全局变量
        function accessGlobalsViaWindow() {
    
            console.log(window.globalVar);
            console.log(window.globalLet);
            console.log(window[globalConst]);
        }
    </script>
</head>
<body>
    <script>
        // 在 body 标签中的脚本访问全局变量
        printGlobalVars(); // 输出所有全局变量
        accessGlobalsViaWindow(); // 通过 window 对象输出全局变量
    </script>
</body>
</html>
目录
相关文章
|
7月前
|
JavaScript 前端开发
避免将变量和函数暴露给全局作用域可能导致的命名冲突和代码可维护性
保护变量和函数不暴露于全局作用域可防止命名冲突,提升代码可维护性。
|
7月前
|
自然语言处理 JavaScript 前端开发
作用域的概念及作用?作用域的分类?.js 属于哪种作用域?
作用域的概念及作用?作用域的分类?.js 属于哪种作用域?
75 0
|
1月前
全局和局部变量
全局和局部变量 -全局变量 如果在当前标签下定义了一个变量,即使是在for循环内定义,其在该脚本页面内均有效。 -局部变量 在函数内定义的变量仅在函数内部有效
|
2月前
|
自然语言处理 JavaScript 前端开发
词法作用域和静态作用域有什么区别
【10月更文挑战第12天】词法作用域和静态作用域有什么区别
|
3月前
|
Java
作用域
作用域
22 2
|
3月前
C 作用域详解
在 C 语言中,作用域决定了变量和函数的可见性和生命周期,包括块作用域、函数作用域、文件作用域和全局作用域。块作用域内的变量仅在块内有效,函数作用域内的变量在整个函数内有效,文件作用域内的全局变量和函数在整个文件内有效,而全局作用域内的变量和函数在整个程序运行期间有效。作用域的优先级遵循局部变量优先的原则,局部变量会遮蔽同名的全局变量。变量的生命周期分为局部变量(函数调用时创建和销毁)、全局变量(程序开始时创建和结束时销毁)以及静态变量(整个程序期间有效)。理解作用域有助于避免命名冲突和错误,提高代码的可读性和可维护性。
|
3月前
|
JavaScript 前端开发
理解局部作用域
【9月更文挑战第03天】
33 2
|
7月前
|
JavaScript 前端开发 Java
什么是作用域,它的作用是什么?
什么是作用域,它的作用是什么?
197 1
|
7月前
|
JavaScript 前端开发
js开发:请解释什么是作用域(scope),并说明全局作用域、局部作用域和块级作用域的区别。
JavaScript中的作用域规定了变量和函数的可见性与生命周期。全局作用域适用于整个脚本,变量可通过全局对象访问,可能导致命名冲突和内存占用。局部作用域限于函数内部,每次调用创建新作用域,执行完毕后销毁。ES6引入的块级作用域通过`let`和`const`实现,变量仅在其代码块内有效,并有暂时性死区。作用域机制有助于代码组织和变量管理。
56 1
|
7月前
|
JavaScript
JS作用域(全局作用域+局部作用域)
JS作用域(全局作用域+局部作用域)
36 0