【let和 var在window的表现】
【关于 let 和 window】
这是因为 let 和 var 在全局作用域中的行为是不同的:
- 使用
var声明的变量会自动成为 window 对象的属性:
var name = "hello";
console.log(window.name); // "hello"
- 而使用
let声明的变量不会自动添加到 window 对象中:
let name = "hello";
console.log(window.name); // undefined
这是 ES6 的一个重要特性,主要原因是:
- 为了避免全局变量污染
- 更好的变量隔离
- 符合块级作用域的设计理念
如果你确实需要将函数添加到 window 对象,可以显式赋值:
let f3 = function(){
console.log("hhhh3");
}
window.f3 = f3; // 显式添加到 window
window.f3(); // 现在可以正常调用了

浙公网安备 33010602011771号