ES5和ES6的区别(let和var)

<body>
<button>Click1</button>
<button>Click2</button>
<button>Click3</button>
<button>Click4</button>
<button>Click5</button>
</body>


<!--ES5中的var是没有块级作用域的
ES6中的let是由块级作用域的(if/for
-->


<script type="text/javascript">

//下面的闭包代码相当于上面这个,定义一个函数,然后立即传参数执行函数
/*
function a(name){
console.log(name)
}
a('小红')

*/


const btns = document.getElementsByTagName('button')
for (var i = 0; i < btns.length; i++) {
(function (num){
btns[i].addEventListener('click', function () {
console.log('' + num + '个按钮被点击')
})
})(i)
//for遍历到i等于5时,被 i < btns.length 判断挡住了
//如果不闭包处理,for循环在点击按钮之前先遍历一遍,最后i等于5,所以点击所有的按钮,都是输出5个按钮被点击
}
</script>

posted on 2020-11-04 16:06  catchsa  阅读(482)  评论(0)    收藏  举报

导航