let,const,var 的区别

var、let、const之间的区别

let和var
     相同点:在全局声明的变量是全局变量,在局部声明的变量是局部变量
     不同点:1、let声明的变量不能重复声明
            2、let声明的变量不能提升
            3、let声明的变量只在当前块作用域中有效
            4、let声明的变量产生暂时性死区,只在当前块作用域中查找

const: 1、const声明的变量是常量,不能改变
       2、const声明的变量必须赋初值
     与let一样
       3、const声明的变量不能重复声明
       4、const声明的变量不能提升
       5、const声明的变量只在当前块作用域中有效
       6、const声明的变量产生暂时性死区,只在当前块作用域中查找

相同点

   let arr=1
   function fn(){
       let b=2
       console.log(b);//在局部声明的变量是局部变量
       console.log(arr);//1
   }
   fn()
   console.log(arr);//1    在全局声明的变量是全局变量,
   console.log(b);//b is not defined

1.let声明的变量不能重复声明

 let obj=10
 let obj=20
 console.log(obj);

2、let声明的变量不能提升

function fn(){
     console.log(c);//Uncaught ReferenceError: Cannot access 'c' before initialization
     let c=20//let 声明的变量不会提升
 }
 fn()
  1. let声明的变量只在当前的块作用域内有效. 块作用域:{}
  2. let声明的变量在块作用域内产生暂时性死区,如果在块作用域内去操作该变量,只会在当前的块状作用域内查找
 {
     let m=10
     console.log(m);
 }
 console.log(m);// m is not defined
       let w=3
  while( w>0){
     let p=4
     w--
     console.log(p);
  }
  console.log(p);

1、const声明的变量是个常量,不可以修改

 const demo=[1]
 console.log(demo);
  demo='2'
 console.log(demo);

2、const声明的变量必须赋初值

const demo2;

3、不能重复声明

 const demo3=2
  const demo3=3

4、不能进行变量的提升

 console.log(demo4);
 const demo4=4

5、只在当前的块作用域内有效

 {
  const demo5=5
  console.log(demo5);
 }
  console.log(demo5);//报错

6、会产生暂时性死区

 var num=6
 function fn(){
     const num=6
     console.log(num);
     // const num=6
 }
 fn()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值