Console.log() 影响表达式结果?

Console.log() affects expression result?

我在 JavaScript 中遇到了 console.log() 的奇怪行为。这可能一点也不奇怪,但我还是第一次看到。大约 console.log() 将表达式的结果加倍。

我正在做的是:我按下应该添加数字的按钮。我按“3”、“2”和“1”。所以我应该看到“321”。这就是我得到的,当它没问题的时候。

一切正常时的情况:

但是当我取消注释较低的 console.log()(在第 595 行)时,当我按下相同的按钮时,结果为“332211”。

我不明白为什么将第 593 行的表达式提供给 console.log() 会影响该表达式的结果?我的意思是,我认为我应该在控制台中看到此表达式的结果,但既不会在控制台中翻倍,也不会在页面中翻倍。

为什么 console.log()(第 595 行)影响第 593 行的表达式结果?

因为您正在其调用中更新 currentInput.value。如果你不希望这种情况发生,你应该更换

console.log('Amount of money:', currentInput.value += ev.target.innerHTML);

console.log('Amount of money:', currentInput.value + ev.target.innerHTML);

(注意 += 被替换为 +)。