【发布时间】:2012-06-26 16:11:59
【问题描述】:
我在这里可能有点厚,但请回答我。考虑以下代码:
a=1;
while(a<=6) {
console.log(a);
a++;
}
如果我运行它,我会在控制台中获得从 1 到 6 的值,然后是另一个 6。
现在看看这个:
a=1;
while(a<=6) {
console.log(a);
++a;
}
现在运行它会得到从 1 到 7 的值。
为什么会这样?我的理解是,语句块只有在表达式计算为真时才会运行。在我的第二个示例中,这怎么可能?为什么 6 在第一次出现两次?让我很困惑。
如果你能简单地解释一下(我还在学习)那就太好了。
【问题讨论】:
-
你能显示完整的代码吗,因为 ++a;和一个++;如果它们是单独的陈述而不是与其他陈述复合,则它们是相同的。
-
第二个例子打印 1 到 6 -> jsfiddle.net/USYSH
-
@ManseUK 不在 Firefox 中。关键因素是从浏览器 JavaScript 控制台执行此操作,其行为是这里的问题所在。最后打印的数字不是
console.log()调用的结果。 -
@epascarello 这不是同一个问题。更多的是对控制台输出的混淆。
标签: javascript