理解全局作用域

简介: 【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>
目录
相关文章
|
6月前
|
编译器 C++
c++关于命名空间内变量和函数及全局变量的使用和作用域
c++关于命名空间内变量和函数及全局变量的使用和作用域
105 1
|
3天前
全局和局部变量
全局和局部变量 -全局变量 如果在当前标签下定义了一个变量,即使是在for循环内定义,其在该脚本页面内均有效。 -局部变量 在函数内定义的变量仅在函数内部有效
|
30天前
|
自然语言处理 JavaScript 前端开发
词法作用域和静态作用域有什么区别
【10月更文挑战第12天】词法作用域和静态作用域有什么区别
|
2月前
|
Java
作用域
作用域
19 2
|
2月前
C 作用域详解
在 C 语言中,作用域决定了变量和函数的可见性和生命周期,包括块作用域、函数作用域、文件作用域和全局作用域。块作用域内的变量仅在块内有效,函数作用域内的变量在整个函数内有效,文件作用域内的全局变量和函数在整个文件内有效,而全局作用域内的变量和函数在整个程序运行期间有效。作用域的优先级遵循局部变量优先的原则,局部变量会遮蔽同名的全局变量。变量的生命周期分为局部变量(函数调用时创建和销毁)、全局变量(程序开始时创建和结束时销毁)以及静态变量(整个程序期间有效)。理解作用域有助于避免命名冲突和错误,提高代码的可读性和可维护性。
|
2月前
|
JavaScript 前端开发
理解局部作用域
【9月更文挑战第03天】
29 2
|
6月前
|
JavaScript 前端开发 Python
函数与作用域
编程中的函数与作用域概念。函数是可重用的代码块,能提高代码的可读性、可维护性和复用性。基础用法包括定义、调用和返回值。高级用法涉及函数嵌套、匿名函数(lambda函数)和装饰器。装饰器能在不修改原函数代码的情况下添加功能。 作用域决定了变量的可见范围,从内到外是局部、嵌套、全局和内置作用域。闭包是能访问外部函数变量的内部函数,即使外部函数执行完毕,闭包仍能保留其状态。闭包常用于实现特殊功能,如记忆化和延迟执行。 立即执行函数表达式(IIFE)是JavaScript中的模式,用于创建私有作用域和防止变量污染全局。IIFE常用于封装变量、避免命名冲突以及实现模块化和函数作为参数传递。
|
6月前
|
JavaScript 前端开发 Java
什么是作用域,它的作用是什么?
什么是作用域,它的作用是什么?
161 1
|
6月前
|
JavaScript 前端开发
js开发:请解释什么是作用域(scope),并说明全局作用域、局部作用域和块级作用域的区别。
JavaScript中的作用域规定了变量和函数的可见性与生命周期。全局作用域适用于整个脚本,变量可通过全局对象访问,可能导致命名冲突和内存占用。局部作用域限于函数内部,每次调用创建新作用域,执行完毕后销毁。ES6引入的块级作用域通过`let`和`const`实现,变量仅在其代码块内有效,并有暂时性死区。作用域机制有助于代码组织和变量管理。
45 1
|
6月前
|
JavaScript
JS作用域(全局作用域+局部作用域)
JS作用域(全局作用域+局部作用域)
33 0