1.以往js变量
- var
- 1.可以重复声明
- 2.无法限制修改(指不能声明常量)
- 3.没有块级作用域(指{}这样的)
2.现在ES6变量
- let 不能重复声明-变量,可以修改,块级作用域
- const 不能重复声明-常量,不可以修改,块级作用域
3.实例:块级作用域有什么用处
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>块级作用域03</title>
<script>
window.onload = function() {
var aBtn = document.getElementsByTagName('input')
// 效果1
// for (var i = 0; i < aBtn.length; i++) {
// aBtn[i].onclick = function() {
// alert(i);
// // 按钮执行结果三次全为3
// };
// }
// 效果2
// for (var i = 0; i < aBtn.length; i++) {
// (function(i) {
// aBtn[i].onclick = function() {
// alert(i);
// // 按钮执行结果三次分别为0,1,2
// };
// })(i);
// }
// 效果3
for (let i = 0; i < aBtn.length; i++) {
aBtn[i].onclick = function() {
alert(i);
// 按钮执行结果三次也分别为0,1,2
};
}
}
</script>
</head>
<body>
<input type="button" value="按钮1">
<input type="button" value="按钮2">
<input type="button" value="按钮3">
</body>
</html>