ES6--let和const

var 声明的缺点

1、可以重复声明

2、无法限制修改

3、没有块级作用域

let与const

声明

都不能重复声明

1 let a = 1
2 let a = 2
3 //报错 Identifier 'a' has already been declared。const同

修改

let 声明的是变量,可以修改。const声明的是常量,不能修改

不能给常量赋值修改

块级作用域

let和const都是块级作用域

块级作用域用途举例:

1   var aBtn = document.getElementsByTagName('input');
2 
3     for (var i = 0; i < aBtn.length; i++) {
4         aBtn[i].onclick = function () {
5             alert(i)
6         }
7     }

想要的效果是点击按钮,弹出对应的index。这样写导致全部弹出3

第一种修改方式(立即执行函数)

  for (var i = 0; i < aBtn.length; i++) {
        (function (i) {
            aBtn[i].onclick = function () {
                alert(i)
            }
        })(i)
    }

第二种方式,利用块级作用域,使用let声明i

1   for (let i = 0; i < aBtn.length; i++) {
2         aBtn[i].onclick = function () {
3             alert(i)
4         }
5     }

 

posted @ 2018-06-09 20:20  懒懒同学不懒  阅读(123)  评论(0编辑  收藏  举报