use*_*466 11 javascript node.js
在nodejs cli中运行以下代码:
var my_function = function() {
var next_value = 1
, value = undefined
, difference = undefined
, prev_difference = undefined
while ((typeof prev_difference === 'undefined') || (prev_difference > 0)) {
value = next_value
next_value = 2
difference = next_value - value
if (difference > prev_difference) {
throw new Error('Diminishing')
}
prev_difference = 0
}
return next_value
}
for (var i = 0; i< 300; i++) { console.log(i); console.log(my_function()) }
Run Code Online (Sandbox Code Playgroud)
在循环的迭代282,我开始得到值'1'而不是'2'.不能为我的生活理解为什么.这段代码是我一直在努力的其他东西的减少,因此在循环中看似不必要的if语句.有几种方法可以改变这些代码,使得执行路径不会搞砸,但我想了解为什么它会破坏当前的设置.
另外,如果你有任何工具提示可以帮助我将来调试这样的东西,我将非常感激.在大多数情况下,我使用console.log来缩小范围.
node.js版本v0.8.6.在Mac OSX版本10.7.5上运行.谢谢
| 归档时间: |
|
| 查看次数: |
465 次 |
| 最近记录: |