全局 JavaScript 变量:理解全局作用域
全局变量是在 JavaScript 函数外部声明的变量。它们属于全局作用域,可以在网页的所有脚本和函数中访问。全局变量是全局对象的属性,浏览器中的全局对象通常是 window
对象。
声明全局变量
全局变量使用 var
、let
或 const
关键字在函数外部声明。使用 var
声明的全局变量是最常见的,但 let
和 const
也被用于声明具有块级作用域的变量,尽管在全局上下文中,它们的块级作用域特性并不明显。
使用 var
声明全局变量:
var globalVar = "I'm a global variable";
使用 let
和 const
声明全局变量:
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>