var 声明全局变量var globalVar = 'I am a global variable';
console.log(window.globalVar); // 输出: I am a global variable
在这个例子中,globalVar 被添加到了 window 对象上,可以通过 window.globalVar 访问。
let 声明全局变量let globalLet = 'I am a global variable with let';
console.log(window.globalLet); // 输出: undefined
在这个例子中,globalLet 没有被添加到 window 对象上,因此 window.globalLet 输出 undefined。
var 声明的全局变量:当在全局作用域中使用 var 声明变量时,变量会被添加到 window 对象的属性上。这是因为 var 的作用域是函数作用域或全局作用域,且在全局作用域中,它的声明会影响到全局对象(window)。
let 和 const 声明的全局变量:当使用 let 或 const 声明变量时,这些变量不会成为 window 对象的属性。let 和 const 的作用域是块级作用域,它们在全局作用域中的行为不同于 var。全局变量 let 和 const 声明的变量不会挂载到全局对象上,避免了全局作用域的污染。
var 声明的全局变量会成为 window 对象的属性。let 和 const 声明的全局变量不会成为 window 对象的属性。使用 let 和 const 的好处在于它们提供了更精确的作用域控制,减少了潜在的全局变量污染,从而提高了代码的可维护性和安全性。