【let和 var在window的表现】

【关于 let 和 window】

这是因为 letvar 在全局作用域中的行为是不同的:

  1. 使用 var 声明的变量会自动成为 window 对象的属性:
var name = "hello";
console.log(window.name); // "hello"
  1. 而使用 let 声明的变量不会自动添加到 window 对象中:
let name = "hello";
console.log(window.name); // undefined

这是 ES6 的一个重要特性,主要原因是:

  1. 为了避免全局变量污染
  2. 更好的变量隔离
  3. 符合块级作用域的设计理念

如果你确实需要将函数添加到 window 对象,可以显式赋值:

let f3 = function(){
    console.log("hhhh3");
}
window.f3 = f3; // 显式添加到 window
window.f3(); // 现在可以正常调用了
posted @ 2025-04-11 17:02  十三山入秋  阅读(13)  评论(0)    收藏  举报