JavaScript var let const变量声明问题
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<body>
<button >1</button>
<button >2</button>
<button >3</button>
<button >4</button>
<button >5</button>
<button >6</button>
<button >7</button>
<button >8</button>
<script>
var btns=document.getElementsByTagName("button");
//Javascript ES5 var为全局变量,没有块级作用域变量概念
for(var i=0;i<8;i++){
btns\[i\].addEventListener('click',function () {
console.log("var第"+i+"个按钮被点击");
})
}
//javascript ES6 中有let 可以做块级作用域内变量
for(let i=0;i<8;i++){
btns\[i\].addEventListener('click',function () {
console.log("let第"+i+"个按钮被点击");
})
}
//ES5 用闭包实现块级作用域内变量,通过函数实现
for(var i=0;i<8;i++){
(function (index) {
btns\[index\].addEventListener('click',function () {
console.log("闭包第"+index+"个按钮被点击");
})
})(i)
//相当于
function a(i){}
a(index);
}
//是申请常量,如果此常量是对象,那么对象里面的属性可以修改
const name="nsk";
name="666"; //这是错的
const person{
name="nsk";
}
person.name="666" ;//这是合法的
person = {}; //这是错的
</script>
</body>
</html>