es6新增的let

最近出去观望一下,发现很多人喜欢问es6,所以我决定定期写一写关于se6都有哪些好玩的东西,今天先说一下烂大街的let

个人感觉之所有有let还是因为var有几点不足之处:

首先是作用域的问题,其次是变量提升

  1. var arr = [ ];
    for(var i=0;  i<10;  i++){
        arr [i] = () => {
           console.log(i)
        }
    
    }
    arr[1]();


    先不说原因,继续向下看:

    var arr = [ ];
    for(let i=0;  i<10;  i++){
        arr [i] = () => {
           console.log(i)
        }
    
    }
    arr[1]();


           这是因为let声明的变量仅仅在自己的块级作用域起作用,出了这个块级作用域就不起作用,如果用var声明,就不是这种情况了,i 的值会影响到各个块里面的 i,等循环完后 i 等于10,所有块的i都变成了10了

  2. 变量提升,我觉得没啥可说的就不说了

还有几点要注意的:
同一个块级作用域内,不允许重复声明同一个变量。

函数内不能用let重新声明函数的参数

用let声明变量只在块级作用域起作用,适合在for循环使用(个人理解哈)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值