JavaScript for 循环是如何执行的?

Posted

技术标签:

【中文标题】JavaScript for 循环是如何执行的?【英文标题】:How JavaScript for loop executed? 【发布时间】:2020-01-18 05:50:56 【问题描述】:

for循环之后的代码在for循环之前执行。 javascript是同步执行的,为什么要先执行for循环后的一行?

function solution(A) 
  let diff = [];

  for (let i = 1; i < A.length; i++) 
    let sum1 = 0;
    let sum2 = 0;

    for (let j = 0; j < i - 1; j++) 
      sum1 += A[j];
      console.log('Why this is executing later? ' + sum1);
    

    for (let k = i; k < A.length; k++) 
      sum2 += A[k];
    

    console.log('Why this is executing frist? ' + sum1);
    diff.push(Math.abs(sum1 - sum2));
  

  return Math.min(...diff);


solution([1,2,3,4,5]);

【问题讨论】:

【参考方案1】:

第一次运行外循环时,i 将是 1。您的内部循环检查j&lt;i-1j 是否从0 开始。所以你的内循环第一次执行时,会检查0 &lt; 0是否为假,会立即退出,不执行内循环。

【讨论】:

【参考方案2】:

您的问题是带有Why this is executing later 消息的代码在外循环的第一次运行中根本没有执行

当您在for(let i=1; i&lt;A.length; i++) 进入第一个循环时,i 将是1

现在你点击了for(let j=0; j&lt;i-1; j++),但i-11-1(因为i1),所以循环将执行0 次。所以Why this is executing later不会被执行。

所以下一个将被执行的console.log 消息是带有Why this is executing frist 的消息。

【讨论】:

以上是关于JavaScript for 循环是如何执行的?的主要内容,如果未能解决你的问题,请参考以下文章

java 大量for循环如何优化

C语言for的双重循环

理解 javascript 嵌套 for 循环的问题 [关闭]

javascript中的for循环是如何执行的?

JavaScript中for循环的理解

两个for循环执行顺序