V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
justrand
V2EX  ›  问与答

请教一个 js 变量作用域问题?

  •  1
     
  •   justrand · 2021-03-04 15:21:27 +08:00 · 358 次点击
    这是一个创建于 1148 天前的主题,其中的信息可能已经有所发展或是发生改变。

    嗯,没有理解为什么结果是这样的,希望有人指点一下!
    图片

    //会陷入无限循环
    for (var i = 0; i < 3; i++) {
      console.log(i);
      var i = 1; 
    }
    //不会陷入无限循环
    for (var i = 0; i < 3; i++) {
      console.log(i);
      var i = 2; 
    }
    nznd
        1
    nznd  
       2021-03-04 15:26:46 +08:00
    应该和作用域无关把...
    搁哪个语言都这样...
    第二个 i++完是 3 了,不满足条件 跳出循环 只执行一次
    duduaba
        2
    duduaba  
       2021-03-04 15:27:34 +08:00
    1 、i=1 后 i++ 这时 i=2 了,小于 3 进入循环,然后 i=1 又 i++ 。。。无限循环
    2 、i=2 后 i++ 了 i=3 已经不满足条件,循环结束。

    这不是作用域的问题,这是 i++ 没懂什么意思
    idealhs
        3
    idealhs  
       2021-03-04 15:28:25 +08:00
    i ==3 了已经
    yaphets666
        4
    yaphets666  
       2021-03-04 15:29:05 +08:00
    for 循环你没学会 再学学 和变量作用域没关系
    idealhs
        5
    idealhs  
       2021-03-04 15:29:05 +08:00
    初学建议多用 debug 看看变量是怎么变化的
    justrand
        6
    justrand  
    OP
       2021-03-04 15:30:42 +08:00
    @nznd
    @coderfuns
    @idealhs
    @yaphets666
    @idealhs
    懂了,谢谢!
    justrand
        7
    justrand  
    OP
       2021-03-04 15:37:51 +08:00
    ~~~js
    for (var i = 0; i < 3; i++) {
    console.log(i);
    var i = 2;
    console.log(i);
    }
    console.log(i);
    0
    2
    3
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1127 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:53 · PVG 02:53 · LAX 11:53 · JFK 14:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.