は、CLIながら:ジャバスクリプト(nodejs)nodejsに次のコードを実行するループのバグ
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()) }
私は値を取得を開始ループの反復282で「1」の代わりに「2」の。なぜ私の人生は理解できないのですか?このコードの塊は、私が取り組んできた何か他のものからの削減です。そのため、ループ内には不要なif文があります。このコードを変更して実行パスが不正にならないようにするには、いくつかの方法がありますが、なぜ現在の設定で壊れているのか理解したいと思います。
また、今後このようなデバッグに役立つツールのヒントがあれば、非常に感謝しています。私はconsole.logを使ってこれを絞り込みました。
node.jsバージョンv0.8.6。 Mac OSXバージョン10.7.5で動作します。 ありがとう
これは私にとってノードのバグのようです。その行動は本当に奇妙です。 (私もそれを複製することができます)*編集*それはV8のバグであり、ノードのバグではないかもしれないと思います... – Pointy
トリピー。私にも起こります。 – meetamit
Chromeに同じ問題がないように思われるのでV8だとは思わない? –