【问题标题】:(javaScript) value in and out of 'for loop'(javaScript)值进出'for循环'
【发布时间】:2020-07-11 02:13:35
【问题描述】:

我是 javaSCript 的初学者,我只是想知道为什么当它被称为循环“内部”和“循环外部”时,结果会有所不同。

for (var i = 0; i < 5; i++) {
console.log(i);
// prints 0 1 2 3 4 
}

console.log(i);
// prints 0 1 2 3 4 5

【问题讨论】:

    标签: javascript loops for-loop console


    【解决方案1】:

    因为for循环的步骤是:

    • 1 - 定义一个变量
    • 2 - 检查条件
    • 3 - 在循环内运行代码
    • 4 - 并将循环变量值增加1

    但是!在定义变量后和第一个循环之后,它会忽略第一个参数var i = 0,它会将循环变量加1,并且检查条件,为什么?因为在for循环中,最后要做的就是将循环变量加1,

    所以最后一个循环会将循环变量加1并检查条件,

    简单地说:变量已经通过循环变为 5,因为在第一个循环之后它将变量增加 1 并检查条件

    希望我的回答对你有用!

    【讨论】:

      【解决方案2】:

      这就是 JS 中的 var 的工作方式,也是所有语言中的 for 循环的工作方式。

      当你使用 var 关键字声明一个变量时,它被提升到函数范围,或者如果不在函数内部,它是全局的。这使您可以在 for 循环范围之外访问 var。尝试将 var 更改为 let 看看会发生什么。

      其次,由于您的条件i &lt; 5,您在 for 循环中看不到 5 打印。 i++ 导致 'i' 从 4 变为 5,这会破坏 for 循环条件并且不会打印 'i'。

      最后,for 循环外的 console.log(i) 应该只打印 5,因为那是 i 的值,而不是

      console.log(i);
      // prints 0 1 2 3 4 5
      // should print 5 
      

      【讨论】:

        【解决方案3】:

        在循环内部,它记录从04 的数字。最后一个i++i 设置为5,循环停止,因为i &lt; 5 不再为真。然后循环后的console.log(i) 记录这个值。

        【讨论】:

          【解决方案4】:

          在循环执行期间,条件 i

          for (var i = 0; i < 5; i++) {
          console.log("inside loop: " + i);
          // prints 0 1 2 3 4 
          }
          
          console.log("outside loop: " + i);
          // prints just 5

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2023-03-14
            • 1970-01-01
            • 2020-10-10
            • 2013-07-03
            • 2022-11-15
            • 2011-07-12
            • 2012-03-19
            • 1970-01-01
            相关资源
            最近更新 更多