javascript - for循环语句中的var关键字解释
问题描述
我试图理解java脚本的一些概念。我写了这段代码:
<html>
<button>Click</button>
<button>Click</button>
<button>Click</button>
<button>Click</button>
<button>Click</button>
<script>
var btn = document.getElementsByTagName("button");
for(var i = 0; i<5; i++){
btn[i].onclick = function(){alert(i)}
}
</script>
</html>
每次单击每个按钮我都会得到相同的结果“5”,如果我将 var 更改为 let,我将得到正确的结果。有人可以解释为什么会这样吗?
解决方案
推荐阅读
- javascript - 如何设置 vue 和 core ui?
- java - JavaFX ListChangeListener 删除触发添加更改
- javascript - 使用 JavaScript 在 URL 中添加 GET 参数
- c++ - 将对象插入 std::map 时构造函数中的变量地址
- realm - Realm db 的撤消管理
- .net - 如何为 ARM 平台构建 Tizen C# .NET Wearable TPK 并发布到三星卖家门户?
- javascript - 在 dataLoader amchart v3 中循环
- java - 有没有办法根据给定的字符串设置实例的成员变量?
- firebase - Flutter Cloud Firestore 仅在调试时获取最新数据
- c - 如何订购相互依赖的功能?