javaScript 中为什么 for循环使用let不报错,使用const 报错?

本文探讨了JavaScript中在for循环中使用let和const声明变量时的区别。重点在于const声明的变量不允许重新赋值,这导致在循环中使用const会报错,而let则可以因每次迭代创建新的变量实例。

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

javaScript 中为什么 for循环使用let不报错,使用const 报错?

  • const 声明变量不复值会报错!
for 循环底层原理:
  <button>1</button>
  <button>2</button>
  <button>3</button>
    var btns = document.querySelectorAll('button')    
    for (let i = 0; i < btns.length; i++) {
      btns[i].addEventListener('click', function () {
        // 之所以每次都能打印出对应的索引
        // 是因为 let 的 块级作用域
        // 在循环的过程中相当于有三个 {} 出现
        // 每一个 {} 里面有一个 let 定义的变量 i
        console.log(i)
      })
    }
      当循环开始的时候
      {
        let i
        i = 0
        0 < btns.length
        btns[0].addEventListener('click', function () { console.log(i) })
      }
      {
        let i
        i = 1
        1 < btns.length
        btns[1].addEventListener('click', function () { console.log(i) })
      }
      {
        let i
        i = 2
        2 < btns.length
        btns[2].addEventListener('click', function () { console.log(i) })
      }
      {
        let i
        i = 3
        0 < btns.length
        结束循环
      }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值