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()) }
ループの反復 282 で、「2」ではなく「1」の値を取得し始めます。私の人生では理由を理解できません。このコードのチャンクは、私が取り組んできた他のものからの削減であるため、一見不必要な if ステートメントがループ内にあります。実行パスが台無しにならないようにこのコードを変更する方法はいくつかありますが、現在のセットアップで問題が発生する理由を理解したいと思います。
また、将来このようなデバッグを行うのに役立つツールについてのヒントがあれば、非常に感謝しています。ほとんどの場合、これを絞り込むために console.log を使用しました。
node.js バージョン v0.8.6。Mac OSX バージョン 10.7.5 で実行されます。ありがとう