let 、var 和 const

探讨了JavaScript中let关键字引入的改进,包括解决块级作用域缺失、循环变量过度共享等问题,以及let声明变量的特性,如每次迭代创建新绑定及重复定义错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在以往的概念里,js其实有一些没办法解决的问题

1. js没有块级作用域

for(var i= 0;i<3;i++){
    var a = 'a';
}
console.log(a);    //可以访问a,i

2. 循环变量过度共享

for(var i= 0;i<3;i++){
   setTimeout(function (){console.log(i),1000});
}
  //1s过后输出3个3

以上问题可以用let解决

1. let 声明的变量有块级作用域

2. let 声明的全局变量不是全局对象的属性。(存在一个不可见的块级作用域中,window 变量名访问不到)

3. 形如for(let x...) 的循环每次在迭代时都为 x 创造新的绑定

4. let 重复定义会出错

(未完待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值