【发布时间】:2013-05-25 11:06:26
【问题描述】:
谁能解释为什么以下代码在作为函数的一部分运行时有效,但在 Chrome 控制台窗口中自行运行时会产生奇怪的结果?
var foo = function() {
var x = 1;
while (x<3) {
console.log(x);
x = x+1;
}
}
foo(); // This prints 1,2 as expected
但是当我直接在 Chrome 控制台中运行 while 部分时,我得到 1,2,3 这没有任何意义(请参见输出图像):
var y = 1;
while (y<3) {
console.log(y);
y = y+1;
}
// This prints 1,2,3 in the console
请注意,关于console.log 有一些类似的问题导致undefined (Chrome/Firefox console.log always appends a line saying undefined),但在我的示例中没有函数调用,while 不会返回任何值。
【问题讨论】:
-
你有 jsFiddle 来证明你的说法吗?
-
如果第二个返回那个,你应该用浏览器换一个更新的版本吗?
-
@fenderog 都为我记录了相同的日志,正如预期的那样 - 1,2
-
朋友们,在你投反对票之前,这是一个比你想象的更合理的问题。尝试将第二段代码粘贴到 Chrome 控制台中,您就会明白为什么它可能会令人困惑。
-
@Isaac 和 Lucero - 你确实是对的:最初措辞的问题绝对令人困惑。 (很抱歉我最初的评论措辞严厉 - 我把它调低了!)迈克克里斯滕森对问题进行了出色的编辑,添加了一个屏幕截图,显示了 Chrome 开发工具的令人困惑的输出。用那个截图好多了!
标签: javascript google-chrome console