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>