ES6 中的 let 和 const 的简单理解

1、声明的变量属于块级作用域 

//属于块级作用域,没有变量提升

function test(){

  for(let i=1;i<3;i++){ //这个括号内属于块级作用域,let 声明的变量只在其的作用域内有效
    console.log(i);  // i 的值 为 1、 2
  }

  console.log(i);  // 由于脱离了作用域,访问不到块级作用域里的i , 所以 i 为undefined
 
}


如果将 let 换成了 var, 则结果如下
function test(){
  for(var i=1;i<3;i++){ 
    console.log(i);  // 1  2
  }

  console.log(i);  // 3

}

2、let 

//使用let 声明的变量不能重复声明

{
  let a = 1;
  let a = 2;  
console.log(a) // 报错
}

3、 const 


function test(){        
  
  //  使用const 声明的变量必须赋值
  const w;   
  w = 123 ;
  console.log (w) // 报错

}

function test(){        
  

  // 使用 const 声明的变量如果为数值,则不可修改
  const PI=3.1415926;   
  PI = 66;
  console.log (PI)  //  报错, 'PI' is read-only 

  
}
function test(){

  // 但是如果声明的是对象,因为对象是引用类型,返回值为对象内存的指针,声明的这个对象
  // 对象存储的是指针,指针是不变的,对象的内容是可以改变的
  const k={           
    a:6                 
  }
  k.b=8;
  console.log(k);  // 输出的值为 6   8
}

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值