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<i-1
和j
是否从0
开始。所以你的内循环第一次执行时,会检查0 < 0
是否为假,会立即退出,不执行内循环。
【讨论】:
【参考方案2】:您的问题是带有Why this is executing later
消息的代码在外循环的第一次运行中根本没有执行。
当您在for(let i=1; i<A.length; i++)
进入第一个循环时,i
将是1
。
现在你点击了for(let j=0; j<i-1; j++)
,但i-1
是1-1
(因为i
是1
),所以循环将执行0
次。所以Why this is executing later
不会被执行。
所以下一个将被执行的console.log
消息是带有Why this is executing frist
的消息。
【讨论】:
以上是关于JavaScript for 循环是如何执行的?的主要内容,如果未能解决你的问题,请参考以下文章