ES6中的let和const关键字和var变量,以及三者之间区别

先讲解下三者区别 具体分析往下翻

varletconst
函数作用域块级作用域块级作用域
变量提升不存在变量提升不存在变量提升
值可更改值可更改值不可更改

var 和 let关键字都是用来声明变量的 但是使用let关键字声明的变量是具有块级作用域的,使用var的变量不具备作用域属性

let块级作用域

块级作用域 简单理解 就是一个大括号内的 就被称为块级作用域

案例1: a只能在if内访问到 在if外访问 就是报错未被定义的

    <script>
        if (true) {
            let a = 10;
            console.log(a); //10
        }
        console.log(a); //defind
    </script>

案例2: 访问b b在第二个if里 所以应该在第二个if里打印 所以还是报错 没被定义

    <script>
        if (true) {
            let a = 10;
            console.log(a); //10
            if (true) {
                let b = 20;
                console.log(b); //defind
            }
            console.log(b); //defind
        }
        console.log(a); //defind
    </script>

案例3: 在for循环里 使用let变量 可以防止循环变量i变成全局变量

            在for循环外部访问不到i 但是如果使用var 则打印 i=3

       for (let i = 0; i < 3; i++) {

        }
        console.log(i); //报错defind

let没有变量提升

let关键字声明的变量没有变量提升 只能先声明后使用

     console.log(num); //报错
     let num = 100;
     console.log(num); //100

let暂时性死区

 var定义的num和if里定义的num 只是变量名一样 但不是同一个变量 let里的变量 只在if{ }里生效 所以被称为暂时性死区

   <script>
        var num = 10;
        console.log(num); //10
        if (true) {
            let num = 20;
            console.log(num); //20
        }
        console.log(num); //10
    </script>

const 关键字

1.const关键字也是具有块级作用域的特点的

2.const关键字声明的常量必须赋初始值

案例1:如果不给初始值  控制台 则会报错 说const声明中缺少初始化

             赋值之后 控制台报错则取消

    <script>
        const PI;  // 报错 Missing initializer in const declaration
        const PI = 3.14;  
    </script>

3.const常量值一旦声明之后不可被更改

 案例1: 由于const 已经对pi赋值 所以不能再更改

    <script>
        const PI = 10;
        PI = 100;  //报错 常量值不可被更改
    </script>

 案例2: 不能直接对数组进行赋值 这会更改内存地址 通俗点说 就是如果想要更改arr里的值 就使                     用索引号的方式更改 不要直接对元素进行赋值

    <script>
        const arr = [100, 200];
        arr[0] = '你好'
        arr[1] = 30
        console.log(arr); // ['你好', 30]

        arr = ['你好', 30]
        console.log(arr);  //报错 常量不能再赋值
    </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值