JavaScript For循环 - 为了好玩,可能很简单

时间:2017-11-08 07:37:17

标签: javascript for-loop

我最近在Marjin Haverbeke的书“Eloquent Javascript, Second Edition”中完成了一项挑战。

One had to create此控制台输出使用for循环:

#
##
###
####
#####
######
#######

The answer is this:

for (var i = '#'; i.length < 8; i += '#') {
console.log(i);
}

我想知道的是为什么第一行不是两个哈希('##'),因为循环的更新部分(i + ='#')将'#'添加到i(已经= '#'),因此意味着循环的第一次迭代肯定会输出'##'?

也许我需要一个关于这个循环如何运作的教训。

你真的, 仍然看似JS新手。

4 个答案:

答案 0 :(得分:6)

for (init(); condition(); update()) {
  body();
}

相当于

init();
while (condition()) {
  body();
  update();
}

因此,第一次i += '#'运行仅在第一次console.log(i)之后(当i只是'#'时)。

答案 1 :(得分:1)

@Callum你首先要检查循环是如何工作的。

如果你已经写过。

for (var i = '#'; i.length < 8; i += '#') {
console.log(i);
}

所以在这个循环中发生的是这个。

1)first var i ='#' initiallize

然后条件

2)i.length < 8

然后它执行语句

3)console.log(i);

4)then increment

i += '#'

然后从第2步到第4步

这就是for循环算法的工作原理

答案 2 :(得分:1)

it is just like post increment. The order of execution is:

--> initialisation
--> check condition
--> execute body
--> increment value

so first it would print the value then increment it.

答案 3 :(得分:0)

这会在第一行中显示##

for (var i = '#'; i += '#',i.length < 8; ) {
console.log(i);
}