es5-var
不足:
- 可以重复命名
- 无法限制修改
没有块级作用域
严格声明下不考虑
es6-let
- 不能重复声明
- 能对常量赋值
- 有块级作用域
es6-const
- 不能重复声明
- 不能对常量赋值
- 有块级作用域
块级作用域的使用
对连续3个按钮赋值点击事件,要求弹出对应i的值
es5:
for (var i = 0; i < len; i++) {
(function (i) {
children[i].onclick = function () {
alert(i);
}
})(i)
}
es6:
for (let i = 0; i < len; i++) {
children[i].onclick = function () {
alert(i);
})(i)
}