es6:let与const

es6

es6是为了解决es5语法的缺点新天加的语法。

let与const的特点

遵循块级作用域。只在块级作用域起作用。

注意点

let

  • 不能变量提升
console.log(i);//undefined 变量提升
        var i = 0;
        console.log(msg);//报错  变量不能提升
        let msg = 1;
  • 不能重复申明变量
var i = 1;
        var i = 10;
        console.log(i); // 10 覆盖
        let msg = 1;
        let msg = 2;//解析的时候就报错 ,msg已经申明过来
        console.log(msg);

const

  • 不能变量提升
  • 不能重复申明变量
  • 初始化值不能改变(绑定不能改变,内存地址指向)
// 常量不能更改 绑定不能改变 内存地址指向
        const age = 10;
        age = 20;//报错 常量不能改变
        const person = {
            name: 'cc',
            age: 26
        }
        person.like = 'code';
  • 申明变量必须有初始化值
        const age;//报错 申明常量没有初始化值

块级作用的特点

  • 暂时性死区TDZ
let i = 0;
        {
            console.log(i);//报错 不会打野i = 0;1.因为在块级作用域内声明的变量在这个作用域内都是起作用的,
                                                //2保留var 的函数作用域的变量提升。.
            let i = 1;
        }
  • 循环中的
//循环中使用let与const
        var arr = [];
        for(var i = 0; i < 10; i++){
            (function(j){
                arr.push(function(){
                    console.log(j);
                })
            })(i)
        }
        arr.forEach(function(value, index, array){
             value();
        })
        //对比
        var arr = [];
        for(let i = 0; i < 10 ; i++ ){
            arr.push(function(){
                console.log(i);
            })
        }
        arr.forEach(function(value, index, arr){
            value();
        })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值