ES6基础--------let 和 const 的使用

目录

        在Java中,let和const 用来声明变量,是声明变量的关键字

一、let声明变量

1、不允许重复声明(与 var 作比较)

var 声明变量 :已定义的变量会被第二次定义的值覆盖。

   用 let 声明变量: 已经声明的变量被再次声明,会出现报错,即let不允许重复声明变量。

2、块级作用域

Let它的作用范围仅限于声明所在的代码块(通常是一对花括号{}括起来的部分),外部不能使用,类似于局部变量只作用于局部。

3、不存在变量提升(与 var 比较)

   用var先打印后定义,会先输出默认自动自定义的undiefind的一个 值。

用let进行先打印后定义,先打印的语句会在运行后报错,所以let必须先定义才能进行后续的操作。

4、不影响作用域链

 Let从上到下(先声明再进行操作)不会报错,从下到上(先操作后声明)会报错,因为不存在变量提升

5、暂时性死区(TDZ)

   即内外块拥有同名变量,会进行划分区域进行管理,如有块区域,变量由块区域内的变量进行管理。

Eg:

6、不与顶层对象(window)挂钩(与var、const作比较)

  Var与顶层对象挂钩,即var定义的a会存在于window,而window里面的a与定义的a一致,返回ture

 Let对象不与顶层对象挂钩 ,即window里面不存在 let 定义的b

const可以用 this与window挂钩

二、const声明变量

1、声明变量必须赋初始值,与let相同

2、标识符(变量名)一般为大写

3、不允许重复声明,与let相同会报错

4、值不允许被修改(常量不可以修改、对象{}、数组[]可以被修改)

属性变量修改值

数组或对象修改值

5、块级作用域,与let相同


  •         在Java中,let和const 用来声明变量,是声明变量的关键字

  • 一、let声明变量

  • 1、不允许重复声明(与 var 作比较)

  • var 声明变量 :已定义的变量会被第二次定义的值覆盖。
  • Eg:
  •      
  •        var a=1;
                var a=2;      //(之前的定义可以重复名字,只会得到最后赋的值)
                 console.log(a);//console.log()---打印
  •    用 let 声明变量: 已经声明的变量被再次声明,会出现报错,即let不允许重复声明变量。
  • Eg:
  •        
     let a=1;//报错  //Cannot redeclare block-scoped variable 'a'.
            let a=2;//报错   //Cannot redeclare block-scoped variable 'a'.
            console.log(a);  //值为2

  • 2、块级作用域

  • Let它的作用范围仅限于声明所在的代码块(通常是一对花括号{}括起来的部分),外部不能使用,类似于局部变量只作用于局部。
  • Eg:
  • {
               let a=1;
            }
     console.log(a); //运行后网页报错
  • 3、不存在变量提升(与 var 比较)

  •    用var先打印后定义,会先输出默认自动自定义的undiefind的一个 值。
  •   Eg:
  •  console.log(a);//undiefind  
      var a=1;
     console.log(a);//1

  • 用let进行先打印后定义,先打印的语句会在运行后报错,所以let必须先定义才能进行后续的操作。
  • console.log(b);//会报错,
            let b=2;
            console.log(b);//2

  • 4、不影响作用域链

  •  Let从上到下(先声明再进行操作)不会报错,从下到上(先操作后声明)会报错,因为不存在变量提升
  • Eg:
  •  let a=1;
            {
                console.log(a);//1
                console.log(b);//报错
            }
    
            let b=2;
  • 5、暂时性死区(TDZ)

  •    即内外块拥有同名变量,会进行划分区域进行管理,如有块区域,变量由块区域内的变量进行管理。
  • Eg:
  •  
     let a=1;
            {//由第二个 A 管理,先打印会出错
           
                console.log(a);//报错
                let a=2;
                console.log(a);//2
            }

  • 6、不与顶层对象(window)挂钩(与var、const作比较)

  •   Var与顶层对象挂钩,即var定义的a会存在于window,而window里面的a与定义的a一致,返回ture
  • eg:
  •  console.log(this);//window  ----this代表window
            var a=1;// var 与顶层对象挂钩
            console.log(a==window.a);//true   ---a==window里面的a
  •  Let对象不与顶层对象挂钩 ,即window里面不存在 let 定义的b
  • eg:
  •     l
    et b=2;// let 不与顶层对象挂钩
            console.log(b==window.b);//false
            console.log(window.b);//undefined ----因为没有被定义,window里面没有let 定义的b
  • const可以用 this与window挂钩
    const a=function(){
                console.log(this);//window    ---谁用this,this就是谁
            }
            a();
  • 二、const声明变量

  • 1、声明变量必须赋初始值,与let相同

  • 2、标识符(变量名)一般为大写

    Eg:
    Const PI=3.14159;
    Const MAX_VALUE=100;
    • 3、不允许重复声明,与let相同会报错

    • 4、值不允许被修改(常量不可以修改、对象{}、数组[]可以被修改)

    • 属性变量修改值
    • Eg:
      •         const PI=1.34;    //--const 声明变量
        ​​​​​​​        PI=10; //报错(不能重复赋值或修改)​​​​​​​
                console.log(PI);
    • 数组或对象修改值
    • Eg:
    •  const a={//--数组、对象可以修改值
                   name:"张三",
                    age:20
                }
                a.name="李四"
      ​​​​​​​   console.log(a.name
  • 5、块级作用域,与let相同

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值